文章目录
- 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);
}