久未写博客。。。除了上代码依然不知道说啥,这就只是一个封装了数据库命令的工具
参考了雨松的工具类 http://www.xuanyusong.com/archives/831
只是在条件方便改写了一下,增加了 Operation 类,通过组合类实现条件的编写
new DbLogicalAND(new DbCompareLessThan("id","10"), new DbCompareNotEqual("id","0"));以上说的是 id<10 AND id!=0
代码已上传至Github:https://github.com/pinzeweifen/demo/tree/master/Unity/Sqlite
使用示例:
using UnityEngine; using UnityEditor; using Database; public class EditorTest : EditorWindow { [MenuItem("Tool/Test")] static void Init() { //链接数据库,如果数据库不存在自动创建 DbAccess db = new DbAccess("article.db"); //创建表,它包含有 TEXT类型 的 name 列 和 INTEGER类型 的 id 列。id 为主键,name和id列不能为空 db.CreateTable("equip", new string[] { "name", "id" }, new DataType[] { DataType.TEXT, DataType.INTEGER }, 1, new int[] { 0, 1 }); //是否已经创建 equip 表 Debug.Log(db.IsCreateTable("equip")); //向 equip 表插入 name 为 qq , id 为 666 的数据 db.InsertInto("equip", new string[] { "qq","666" }); //向 equip 表插入 列 name 为 aa 的数据 db.InsertIntoSpecific("equip", new string[] { "name" }, new string[] { "aa" }); //更改 equip 表 id 等于 666 的数据,把 id 改为 999 db.UpdateInto("equip", new string[] { "id" }, new string[] { "999" }, new DbCompareEqual("id", "666")); //删除 equip 表的 name 等于 aa 的行 db.Delete("equip", new DbCompareEqual("name", "aa")); //查找 equip 表所有数据 var data = db.Select("equip", new string[] { "*" }); while (data.Read()) { Debug.Log(data.GetValue(0)+"|"+data.GetValue(1)); } //查找 name 列以 q 开头的所有数据 data = db.SelectWhere("equip", new string[] { "id" }, new DbLogicalLIKE("name", "q%")); while (data.Read()) { Debug.Log(data.GetValue(0)); } //清空表 db.DeleteContents("equip"); //删除表 db.DropTable("equip"); //关闭数据库链接 db.CloseSqlConnection(); } }