文章目录
- 0.参考文章
- 1.Presentation —— 介绍
- 2.(SQLite4Unity3d)Unity中直接使用SQLite的插件
- 3.创建数据库
- 4.创建表
- 5.Navicat Premium(数据库可视化)
- 6.增删改查
- 6.1 增
- 6.2 删
- 6.3 改
- 6.4 查
0.参考文章
https://blog.csdn.net/ChinarCSDN/article/details/106049591
1.Presentation —— 介绍
为什么要使用SQLite数据库?
请查看这里(这是一位叫 秦元培 的博主写的博客),详细的阐述了什么是SQLite以及为什么使用,还附有使用案例
2.(SQLite4Unity3d)Unity中直接使用SQLite的插件
下载地址
遇到的问题:工程里面的sqlite3.dll报错,解决办法:使用sqlite3官网下载的dll
下载地址
3.创建数据库
首先创建一个脚本,引用SQLite4Unity3d,定义一个数据库连接字段
/// <summary>
/// 数据库连接
/// </summary>
public SQLiteConnection Connection;
void Start()
{
//参数1.数据库地址,一般放在StreamingAssets文件夹中,2.开启读写和创建数据库权限
Connection = new SQLiteConnection(Application.streamingAssetsPath+ "/TestDatabase.db",SQLiteOpenFlags.ReadWrite| SQLiteOpenFlags.Create);
}
4.创建表
数据类:
using SQLite4Unity3d;
public class TestTable
{
[PrimaryKey, AutoIncrement] //设置主键 自动增长
public int Id { get; set; }//Id作为主键
public string Name { get; set; }
public int Age { get; set; }
public float Height { get; set; }
public float Weight { get; set; }
/// <summary>
/// 重写ToString函数,方便控制台打印
/// </summary>
/// <returns></returns>
public override string ToString()
{
return string.Format("[Person: Id={0}, Name={1}, Age={2}, Height={3}],Weight={4}]", Id, Name, Age, Height, Weight);
}
}
创建表:
void Start()
{
Connection = new SQLiteConnection(Application.streamingAssetsPath+ "/TestDatabase.db",SQLiteOpenFlags.ReadWrite| SQLiteOpenFlags.Create);
Connection.CreateTable<TestTable>();//创建表
}
运行工程:
在工程的StreamingAssets文件夹中就可以看到我们创建出来的数据库
5.Navicat Premium(数据库可视化)
下载破解教程
使用步骤:
首先点击连接,选择SQLite
6.增删改查
6.1 增
单个增加:
注意: float类型数据精度有所丢失,解决方案就是将float类型的数据转为string类型保存下来,使用的时候再转回float
void InsertData()
{
var p = new TestTable
{
Id = 1,
Name = "Chinar",
Age = 999,
Height = 180.5f,
Weight = 140.3f
};
Connection.Insert(p);
}
多个增加:
void InsertData()
{
Connection.InsertAll(new[] //插入一个数组,数组里是多条数据
{
new TestTable
{
Name = "小明",
Age = 12,
Height = 130.3f,
Weight = 100.2f
},
new TestTable
{
Name = "老皮",
Age = 12,
Height = 133f,
Weight = 96.2f
},
new TestTable
{
Name = "狗子",
Age = 12,
Height = 140f,
Weight = 120.2f
},
new TestTable
{
Name = "刚子",
Age = 13,
Height = 135f,
Weight = 85.6f
},
new TestTable
{
Name = "阿豪",
Age = 13,
Height = 123.4f,
Weight = 99f
},
});
}
6.2 删
一、查找准确数据删除:
//首先查找到名字为小明的那一条数据,然后将其删除
var data = Connection.Table<TestTable>().Where(_ => _.Name == "小明").FirstOrDefault();
Connection.Delete(data);//删除
二、删除主键:
//删除主键为3的数据
Connection.Delete<TestTable>(3);
6.3 改
//获取到名字为“小明”的数据
var data = Connection.Table<TestTable>().Where(_ => _.Name == "小明").FirstOrDefault();
//更改 Weight
data.Weight = 200f;
//更新数据
Connection.Update(data);
6.4 查
var datas = Connection.Table<TestTable>().Where(_=>_.Age == 12);//获取到所有Age为12的数据
foreach (var v in datas)//遍历
{
Debug.Log(v.Name);
}