久未写博客。。。除了上代码依然不知道说啥,这就只是一个封装了数据库命令的工具
参考了雨松的工具类 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();
}
}