Unity5及其更高版本操作sqlite3数据库关于Android版本、Windows版本
发布日期:2021-05-10 09:24:00 浏览次数:23 分类:精选文章

本文共 3738 字,大约阅读时间需要 12 分钟。

使用Sqlite3数据库开发指南

在开发中使用Sqlite3数据库是一种高效的选择,尤其适用于需要在Windows和Android平台上进行数据存储和操作的项目。本文将详细介绍如何配置Sqlite3数据库,并提供基础操作示例。

一、必要库文件

为了在Windows和Android系统中使用Sqlite3数据库,需要以下库文件:

  • 通用库文件

    • Mono.Data.Sqlite.dll
    • sqlite3.dll
  • 平台特定文件

    • Android:libsqlite3.so(由sqlite3.dll在Linux环境下编译生成)
  • 这些库文件需要放在特定的目录下,以确保程序能够正确加载和使用。


    二、文件存放路径

    文件的存放路径需要根据平台进行调整:

  • Windows平台

    • 数据库文件应存放在:StreamingAssets/SystemDB/DatabaseName.db
    • 如果数据库文件不存在,可以从Unity项目路径中拷贝。
  • Android平台

    • 数据库文件应存放在:Application.persistentDataPath/DatabaseName.db
    • 如果数据库文件不存在,可以从Unity项目资产目录中拷贝。

  • 三、数据库配置

    通过SqliteDataBaseConfig类可以实现数据库路径和名称的管理。配置方法如下:

    SqliteDataBaseConfig config = new SqliteDataBaseConfig();string dbName = Global_Parameter.sqliteDatabaseName;// Windows平台if (Application.isEditor) {    config.SqliteDataBasePath = Application.dataPath + "/Plugins/Android/assets/" + dbName;} // Android平台else if (Application.platform == RuntimePlatform.Android) {    config.SqliteDataBasePath = Application.persistentDataPath + "/" + dbName;}

    四、数据库操作

    1. 创建数据库表

    通过SqliteHelper类可以创建数据库表。以下是一个简化的示例:

    public class Ctrl_CreateSqliteDatabase {    private static Ctrl_CreateSqliteDatabase _instance;    private SqliteHelper sql;    public static Ctrl_CreateSqliteDatabase GetInstance() {        if (_instance == null) {            _instance = new Ctrl_CreateSqliteDatabase();        }        return _instance;    }    public void CreateSqliteDatabase() {        // 配置数据库路径        string dbName = Global_Parameter.sqliteDatabaseName;        sql = new SqliteHelper("URI=file:" + Path.Combine(Application.dataPath, "Plugins/Android/assets/" + dbName));        try {            // 创建基础表            sql.CreateTable("User", new[] {"ID", "Name"}, new[] {"INTEGER PRIMARY KEY NOT NULL", "TEXT"});            Debug.Log("数据库表已创建");        } catch (Exception e) {            Debug.LogError("数据库创建失败:" + e.Message);            throw;        } finally {            sql.CloseConnection();        }    }}

    2. 插入数据

    通过SqliteHelper.InsertValues方法可以向数据库中插入数据。以下是一个简单的示例:

    public class Test_AddData : MonoBehaviour {    private SqliteHelper sql;    private Ctrl_SqliteDataBasePath dbPath;    void Start() {        sql = new SqliteHelper("URI=file:" + dbPath.SqliteDataBasePathAndName);        InsertDataToTables();    }    private void InsertDataToTables() {        try {            // 插入权限表数据            sql.InsertValues("User", new[] {"1", "超级管理员", "拥有系统所有权"});            Debug.Log("数据插入成功");        } catch (Exception e) {            Debug.LogError("数据插入失败:" + e.Message);            throw;        } finally {            sql.CloseConnection();        }    }}

    3. 读取数据

    通过SqliteHelper.FillDatatable方法可以读取数据库中的数据并填充 DataTable。以下是一个示例:

    public class Test_ReadData : MonoBehaviour {    private SqliteHelper sql;    private Ctrl_SqliteDataBasePath dbPath;    public Text text;    void Start() {        sql = new SqliteHelper("URI=file:" + dbPath.SqliteDataBasePathAndName);        ReadAuthorityData();    }    private void ReadAuthorityData() {        try {            DataTable dataTable = new DataTable();            sql.FillDatatable(sql.dbCommand, dataTable);                        if (dataTable.Rows.Count > 0) {                text.text = "数据总数=" + dataTable.Rows.Count;                foreach (DataRow row in dataTable.Rows) {                    Debug.Log("用户ID: " + row["ID"] + ", 用户名: " + row["Name"]);                }            } else {                text.text = "查询不到数据!!!";            }        } catch (Exception e) {            text.text = "连接不上数据库,错误信息=" + e.Message;            throw;        } finally {            sql.CloseConnection();        }    }}

    五、注意事项

  • 路径配置

    确保数据库路径正确,尤其是在不同平台上进行测试时。

  • 数据持久化

    Sqlite3数据库支持数据持久化,适合需要数据存储的场景。

  • 异步操作

    在高并发场景下,考虑使用异步操作来提升性能。

  • 数据库备份

    定期备份数据库文件,防止数据丢失。


  • 通过以上步骤,可以在Windows和Android平台上成功配置并使用Sqlite3数据库。希望这些内容对您的开发有所帮助!

    上一篇:解决MySQL插入数据时出现的incorrect string value错误
    下一篇:MySQL下载安装配置和Navicat for MySQL的安装配置

    发表评论

    最新留言

    网站不错 人气很旺了 加油
    [***.192.178.218]2025年05月16日 02时37分30秒