当前位置:网站首页>Unity 使用Sqlite
Unity 使用Sqlite
2022-07-01 05:22:00 【zLulus】
我看网上都在讲引用sqlite3.dll,Mono.Data.Sqlite.dll,System.Data.dll,比如Setup Database (SQLite) for Unity
或者第三方的一些导入方式unity-3rdparty-sqlite-net
或者通过第三方包管理工具导入Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity
但我发现Unity有关于Sqlite的库Unity.VisualScripting.Dependencies.Sqlite.SQLiteConnection,资料有Unity.VisualScripting.Dependencies.Sqlite.SQLiteConnection
所以我就简单做了个增删改查的demo,Unity.VisualScripting.Dependencies.Sqlite.SQLiteConnection可以直接使用,可以完成对Sqlite的操作
下面是关键代码
创建表
using (var db = new SQLiteConnection(databasePath, SQLiteOpenFlags.ReadWrite))
{
var count = db.CreateTable<UserInfo>();
count = db.CreateTable<RandomEvent>();
}
增加数据
using (var db = new SQLiteConnection(databasePath, SQLiteOpenFlags.ReadWrite))
{
var count = db.Insert(new UserInfo()
{
Name = "test1Name",
Sex = SexEnum.Woman,
Birthday = new DateTime(1990, 10, 2)
}, typeof(UserInfo));
List<UserInfo> users = new List<UserInfo>();
users.Add(new UserInfo()
{
Name = "test2Name",
Sex = SexEnum.Man,
Birthday = new DateTime(2000, 10, 2)
});
users.Add(new UserInfo()
{
Name = "test3Name",
Sex = SexEnum.Woman,
Birthday = new DateTime(2004, 10, 2)
});
count = db.InsertAll(users, typeof(UserInfo));
}
修改数据
using (var db = new SQLiteConnection(databasePath, SQLiteOpenFlags.ReadWrite))
{
var count = db.Update(new UserInfo()
{
Id = 3,
Name = "test1Name-Update",
Sex = SexEnum.Woman,
Birthday = new DateTime(1990, 10, 2)
}, typeof(UserInfo));
}
删除数据
using (var db = new SQLiteConnection(databasePath, SQLiteOpenFlags.ReadWrite))
{
string sql = "select Id,Name,Sex,Birthday from UserInfo where Id =3";
var data = new object[] { "Id", "Name", "Sex", "Birthday" };
var deleteData = db.Query(new TableMapping(typeof(UserInfo)), sql, data).FirstOrDefault();
if (deleteData != null)
{
var count = db.Delete(deleteData);
}
var count2 = db.Delete<UserInfo>(4);
}
查询数据
using (var db = new SQLiteConnection(databasePath, SQLiteOpenFlags.ReadWrite))
{
string sql = "select Id,Question,[Order] from RandomEvent";
var data = new object[] { "Id", "Question", "[Order]" };
var datas = db.Query(new TableMapping(typeof(RandomEvent)), sql, data);
//enum not work :(
//var datas2 = db.Find<UserInfo>(user => user.Name.Contains("test"));
var datas2 = db.Find<RandomEvent>(randomEvent => randomEvent.Question.Contains("q"));
var data3 = db.Get<UserInfo>(1);
}
数据表需要做声明
[Table(name: nameof(RandomEvent))]
public class RandomEvent
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public string Question { get; set; }
public int Order { get; set; }
}
[Table(name: nameof(UserInfo))]
public class UserInfo
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public string Name { get; set; }
public SexEnum Sex { get; set; }
public DateTime Birthday { get; set; }
}
示例代码
TestSqliteScript
打开项目后,在TestSqliteCanvas下即可执行
如果觉得有不合适的地方,可以自己再封装一层~
边栏推荐
- Implementation of distributed lock
- Principle, technology and implementation scheme of data consistency in distributed database
- Leetcode1497- check whether array pairs can be divided by K - array - hash table - count
- AcWing 884. Gauss elimination for solving XOR linear equations
- Numeric amount plus comma; JS two methods of adding three digits and a comma to numbers; JS data formatting
- 如何开始学剪辑?零基础详细解析
- Software intelligence: the "world" and "boundary" of AI sentient beings in AAAs system
- LevelDB源码分析之LRU Cache
- 导电滑环短路的原因以及应对措施
- 了解 JVM 中几个相关问题 — JVM 内存布局、类加载机制、垃圾回收
猜你喜欢

Leetcode522- longest special sequence ii- hash table - String - double pointer

Intelligent operation and maintenance: visual management system based on BIM Technology

Data consistency between redis and database

液压滑环的特点讲解

busybox生成的东西

Copier le matériel de conseils de bébé ne peut pas être vide, comment résoudre?

Numeric amount plus comma; JS two methods of adding three digits and a comma to numbers; JS data formatting

And search: the suspects (find the number of people related to the nth person)

Ebpf cilium practice (2) - underlying network observability

Txncoordsender of cockroachdb distributed transaction source code analysis
随机推荐
Cockroachdb: the resistant geo distributed SQL database paper reading notes
Using nocalhost to develop microservice application on rainbow
智慧运维:基于 BIM 技术的可视化管理系统
轻松上手Fluentd,结合 Rainbond 插件市场,日志收集更快捷
Spanner 论文小结
busybox生成的东西
数字金额加逗号;js给数字加三位一逗号间隔的两种方法;js数据格式化
Distributed - summary list
Leetcode1497- check whether array pairs can be divided by K - array - hash table - count
Programmers dig "holes" to get rich: if they find a loophole, they will be rewarded 12.72 million yuan
Redis database deployment and common commands
Global and Chinese markets for soft ferrite cores 2022-2028: Research Report on technology, participants, trends, market size and share
Application and principle of ThreadPoolExecutor thread pool
Series of improving enterprise product delivery efficiency (1) -- one click installation and upgrade of enterprise applications
C# wpf 使用DockPanel实现截屏框
Data consistency between redis and database
1076 Forwards on Weibo
複制寶貝提示材質不能為空,如何解决?
QT waiting box production
Global and Chinese market of solder wire 2022-2028: Research Report on technology, participants, trends, market size and share