/// <summary> /// Initializes. /// </summary> private void Initialize() { preferencesData = Resources.Load <DataTablePreferences>("DataTablePreferences"); databasePath = Path.Combine(Application.persistentDataPath, DataTablesStorageFolderName); if (preferencesData && preferencesData.DataTablesStorageLocation == DataTableStorageLocation.StreamingAssetsPath) { databasePath = Path.Combine(Application.streamingAssetsPath, DataTablesStorageFolderName); } if (preferencesData && preferencesData.DataTablesStorageLocation == DataTableStorageLocation.ResourcesPath) { TextAsset binAsset = Resources.Load <TextAsset>(DataTablesStorageFolderName + "/db1"); if (binAsset) { addressMapDBAdapter = new BoxDBAdapter(databasePath, binAsset.bytes); } } else { addressMapDBAdapter = new BoxDBAdapter(databasePath); } addressMapDBAdapter.EnsureTable <DataTableAddressMap>(typeof(DataTableAddressMap).Name, DataTableAddressMap.PrimaryKey); addressMapDBAdapter.Open(); }
/// <summary> /// Gets the object of data table row. /// </summary> /// <typeparam name="T">The type definition of data table row.</typeparam> /// <param name="primaryValue">The primary value.</param> /// <returns>The object of type definition.</returns> public T GetDataTableRow <T>(object primaryValue) where T : DataTableRow, new() { DataTableAddressMap addressMap = GetDatabaseAddressMap <T>(); BoxDBAdapter dbAdapter = GetDatabaseBoxAdapter(addressMap); T data = default(T); if (dbAdapter != null) { try { string tableName = addressMap.Type; dbAdapter.EnsureTable <T>(tableName, addressMap.PrimaryPropertyName); dbAdapter.Open(); data = dbAdapter.Select <T>(tableName, primaryValue); } catch (Exception exception) { Debug.LogException(exception); } finally { if (dbAdapter != null) { dbAdapter.Dispose(); } } } return(data); }
/// <summary> /// Gets all data table rows. /// </summary> /// <typeparam name="T">The type definition of data table row.</typeparam> /// <returns>The object array of type definition.</returns> public T[] GetAllDataTableRows <T>() where T : DataTableRow, new() { DataTableAddressMap addressMap = GetDatabaseAddressMap <T>(); BoxDBAdapter dbAdapter = GetDatabaseBoxAdapter(addressMap); List <T> results = new List <T>(); if (dbAdapter != null) { try { string tableName = addressMap.Type; dbAdapter.EnsureTable <T>(tableName, addressMap.PrimaryPropertyName); dbAdapter.Open(); results = dbAdapter.SelectAll <T>(tableName); } catch (Exception exception) { Debug.LogException(exception); } finally { dbAdapter.Dispose(); } } return(results.ToArray()); }
/// <summary> /// Gets the data table row count. /// </summary> /// <typeparam name="T">The type definition of data table row.</typeparam> /// <param name="conditions">The conditions.</param> /// <param name="multiConditionOperators">The multi condition operators.</param> /// <returns>The data table row count.</returns> public long GetDataTableRowsCount <T>(List <BoxDBQueryCondition> conditions, List <BoxDBMultiConditionOperator> multiConditionOperators = null) where T : DataTableRow, new() { DataTableAddressMap addressMap = GetDatabaseAddressMap <T>(); BoxDBAdapter dbAdapter = GetDatabaseBoxAdapter(addressMap); long count = 0; if (dbAdapter != null) { try { string tableName = addressMap.Type; dbAdapter.EnsureTable <T>(tableName, addressMap.PrimaryPropertyName); dbAdapter.Open(); count = dbAdapter.SelectCount(tableName, conditions, multiConditionOperators); } catch (Exception exception) { Debug.LogException(exception); } finally { dbAdapter.Dispose(); } } return(count); }
/// <summary> /// Gets the box database adapter. /// </summary> /// <returns>The BoxDBAdapter object.</returns> private BoxDBAdapter GetBoxDBAdapter() { BoxDBAdapter db = new BoxDBAdapter(Application.persistentDataPath); db.EnsureTable <BoxDBAdapterTestVO>(tableName, "Id"); db.Open(); return(db); }
public void SelectCountTest() { BoxDBAdapter db = GetBoxDBAdapter(); long count = db.SelectCount(tableName); db.Dispose(); Assert.AreEqual(3, count); }
public void SelectTest() { BoxDBAdapter db = GetBoxDBAdapter(); BoxDBAdapterTestVO vo = db.Select <BoxDBAdapterTestVO>(tableName, 1); Debug.Log(vo.ToString()); db.Dispose(); Assert.IsNotNull(vo); }
/// <summary> /// Releases unmanaged and - optionally - managed resources. /// </summary> /// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param> protected virtual void Dispose(bool disposing) { if (disposing) { if (addressMapDBAdapter != null) { addressMapDBAdapter.Dispose(); addressMapDBAdapter = null; } } }
public void SelectAllTest() { BoxDBAdapter db = GetBoxDBAdapter(); List <BoxDBAdapterTestVO> list = db.SelectAll <BoxDBAdapterTestVO>(tableName); foreach (BoxDBAdapterTestVO vo in list) { Debug.Log(vo.ToString()); } db.Dispose(); Assert.AreEqual(3, list.Count); }
public void InsertTest() { BoxDBAdapter db = GetBoxDBAdapter(); BoxDBAdapterTestVO[] voList = new BoxDBAdapterTestVO[3] { new BoxDBAdapterTestVO((int)db.MakeNewId(), "test1", 1f), new BoxDBAdapterTestVO((int)db.MakeNewId(), "测试2", 2f), new BoxDBAdapterTestVO((int)db.MakeNewId(), "test3", 3f) }; bool success = db.Insert(tableName, voList); db.Dispose(); Assert.IsTrue(success); }
public void DeleteTest() { BoxDBAdapter db = GetBoxDBAdapter(); BoxDBAdapterTestVO[] voList = new BoxDBAdapterTestVO[] { new BoxDBAdapterTestVO(9999, "test9999", 9999f) }; db.Insert(tableName, voList); bool success = db.Delete(tableName, 9999); db.Dispose(); Assert.IsTrue(success); }
public void MuiltiConditionsSelectTest() { BoxDBAdapter db = GetBoxDBAdapter(); List <BoxDBQueryCondition> list = new List <BoxDBQueryCondition>() { new BoxDBQueryCondition("Id", 1), new BoxDBQueryCondition("Id", 2) }; List <BoxDBAdapterTestVO> result = db.Select <BoxDBAdapterTestVO>(tableName, list, new List <BoxDBMultiConditionOperator>(new BoxDBMultiConditionOperator[1] { BoxDBMultiConditionOperator.Or })); db.Dispose(); Assert.AreEqual(2f, result[0].Value); }
public void MuiltiConditionsSelectCountTest() { BoxDBAdapter db = GetBoxDBAdapter(); List <BoxDBQueryCondition> list = new List <BoxDBQueryCondition>() { new BoxDBQueryCondition("Id", 1), new BoxDBQueryCondition("Id", 2) }; long count = db.SelectCount(tableName, list, new List <BoxDBMultiConditionOperator>(new BoxDBMultiConditionOperator[1] { BoxDBMultiConditionOperator.Or })); db.Dispose(); Assert.AreEqual(2, count); }
public void UpdateTest() { BoxDBAdapter db = GetBoxDBAdapter(); BoxDBAdapterTestVO[] voList = new BoxDBAdapterTestVO[3] { new BoxDBAdapterTestVO(1, "test1_update", 1f), new BoxDBAdapterTestVO(2, "测试2_update", 2f), new BoxDBAdapterTestVO(4, "test3_update", 3f) }; db.Update(tableName, voList); BoxDBAdapterTestVO vo = db.Select <BoxDBAdapterTestVO>(tableName, 1); db.Dispose(); Assert.AreEqual("test1_update", vo.Name); }
/// <summary> /// Gets the adapter of database. /// </summary> /// <param name="addressMap">The object of DataTableAddressMap.</param> /// <returns>The adapter of database.</returns> private BoxDBAdapter GetDatabaseBoxAdapter(DataTableAddressMap addressMap) { BoxDBAdapter dbAdapter = null; if (addressMap != null && addressMap.LocalAddress > 1) { if (preferencesData.DataTablesStorageLocation == DataTableStorageLocation.ResourcesPath) { TextAsset binAsset = Resources.Load <TextAsset>(DataTablesStorageFolderName + "/db" + addressMap.LocalAddress); if (binAsset) { dbAdapter = new BoxDBAdapter(databasePath, binAsset.bytes); } } else { dbAdapter = new BoxDBAdapter(databasePath, addressMap.LocalAddress); } } return(dbAdapter); }