当前位置: 首页 > article >正文

【数据库】Unity 使用 Sqlite 数据库

1.找到需要三个 DLL

  • Mono.Data.Sqlite.dll
  • System.Data.dll
  • sqlite3.dll

上面两个dll可在本地unity安装目录找到:

C:\Program Files\Unity\Hub\Editor\2022.3.xxf1c1\Editor\Data\MonoBleedingEdge\lib\mono\unityjit-win32

下面dll可在sqlite官网下载到:

https://www.sqlite.org/download.html

2.将以上三个dll放入unity的里面的Plugins里面

3.测试代码:

using UnityEngine;
using Mono.Data.Sqlite;
using System.Data;

public class SQLiteTest : MonoBehaviour
{
    private string dbPath;

    void Start()
    {
        // SQLite 数据库的路径
        dbPath = "URI=file:" + Application.streamingAssetsPath + "/example.db";
        Debug.Log("Database Path: " + dbPath);

        CreateTable();
        InsertData("TestKey", "TestValue");
        string value = GetData("TestKey");
        Debug.Log("Retrieved Value: " + value);
    }

    private void CreateTable()
    {
        using (IDbConnection dbConnection = new SqliteConnection(dbPath))
        {
            dbConnection.Open();
            using (IDbCommand command = dbConnection.CreateCommand())
            {
                command.CommandText = "CREATE TABLE IF NOT EXISTS MyTable (key TEXT PRIMARY KEY, value TEXT)";
                command.ExecuteNonQuery();
            }
        }
    }

    private void InsertData(string key, string value)
    {
        using (IDbConnection dbConnection = new SqliteConnection(dbPath))
        {
            dbConnection.Open();
            using (IDbCommand command = dbConnection.CreateCommand())
            {
                command.CommandText = "INSERT OR REPLACE INTO MyTable (key, value) VALUES (@key, @value)";
                command.Parameters.Add(new SqliteParameter("@key", key));
                command.Parameters.Add(new SqliteParameter("@value", value));
                command.ExecuteNonQuery();
            }
        }
    }

    private string GetData(string key)
    {
        using (IDbConnection dbConnection = new SqliteConnection(dbPath))
        {
            dbConnection.Open();
            using (IDbCommand command = dbConnection.CreateCommand())
            {
                command.CommandText = "SELECT value FROM MyTable WHERE key = @key";
                command.Parameters.Add(new SqliteParameter("@key", key));
                using (IDataReader reader = command.ExecuteReader())
                {
                    if (reader.Read())
                    {
                        return reader.GetString(0);
                    }
                }
            }
        }
        return null;
    }

    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.T))
        {
            Debug.Log("写入数据");
            InsertData("名字", "蜡笔小新");
            InsertData("年龄", "5岁");
            InsertData("职业", "幼儿园学生");
            InsertData("爱好", "大姐姐");
        }

        if (Input.GetKeyDown(KeyCode.Space))
        {
            Debug.Log(GetData("名字"));
            Debug.Log(GetData("年龄"));
            Debug.Log(GetData("职业"));
            Debug.Log(GetData("爱好"));
        }
    }
}


http://www.kler.cn/a/501180.html

相关文章:

  • springboot vue uniapp 仿小红书 1:1 还原 (含源码演示)
  • LabVIEW水位监控系统
  • 【数学】概率论与数理统计(五)
  • 项目开发实践——基于SpringBoot+Vue3实现的在线考试系统(五)
  • ElasticSearch | Elasticsearch与Kibana页面查询语句实践
  • GRE技术的详细解释
  • 上手体验微软全新整合的王炸平台Fabric
  • Python爬虫-汽车之家各车系周销量榜数据
  • 网络原理(1)—— 初识
  • 【Linux系列】`find / -name cacert.pem` 文件搜索
  • 16.C语言预处理指令详解:#define、#include、#ifdef 等高效用法
  • Java 常用符号和运算符总结
  • Java 数组与集合的深度解析与应用场景选择
  • 深度学习中常见的激活函数详解
  • html使用css外部类选择器
  • Elasticsearch:使用 Playground 与你的 PDF 聊天
  • 使用正则表达式读取文本数据【Python】
  • 【记录基于Python tkinter的音乐播放器的实现过程】
  • NS3学习——fifth基础上运行tcpVegas算法(附完整源码)
  • Qt天气预报系统获取天气数据
  • STM32: 输入捕获基本结构
  • 阿里云-Centos9-安装Docker-配置镜像拉取加速地址-开机自启
  • 【深度学习】Pytorch:加载自定义数据集
  • java导出pdf文件
  • idea系列---【idea中的Debug常用功能】
  • 【漫话机器学习系列】046.弹性网络(Elastic Net)