Unity 数据库的简单使用

下载地址:http://www.sqlite.org/download.html

  将Precompiled Binaries for Windows下的包下载下来sqlite-dll-win64-x64-3150100.zip、sqlite-tools-win32-x86-3150100.zip

  sqlite-dll-win64-x64-3150100.zip包含.def、.dll两个文件

sqlite-tools-win32-x86-3150100.zip包含三个执行文件exe

将它们一起解压到D:\sqlite文件夹,配置环境变量PATH后追加“D:\sqlite;”

1.创建一个Unity工程,创建一个文件夹命名为Plugins
2.导入两个文件到Plugins文件夹(Mono.Data.Sqlite.dll和System.Data.dll)
3.新建一个脚本用来操作数据库的使用
4.在脚本中引用命名空间Mono.Data.Sqlite(能引用证明成功了)

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

public class SqliteTest : MonoBehaviour {

    void Start () {
        //打开数据库
        SqliteConnection con = new SqliteConnection("data source=" + Application.dataPath + "/data.db");
        con.Open();
        //创建表
        SqliteCommand cmd = new SqliteCommand("create table if not exists User(uid integer, name text)",con);
        //执行创建表命令
        cmd.ExecuteNonQuery();
        cmd.Dispose();
        //插入一条数据
        cmd = new SqliteCommand("insert into User values(1,'令狐冲')", con);
        //执行插入数据命令
        cmd.ExecuteNonQuery();
        cmd.Dispose();
        //查询当前几条结果
        cmd = new SqliteCommand("select count(*) from User", con);
        object obj = cmd.ExecuteScalar();
        int count = System.Convert.ToInt32(obj);
        Debug.Log("count:" + count);
        cmd.Dispose();

        //查询数据
        cmd = new SqliteCommand("select * from User",con);
        SqliteDataReader reader = cmd.ExecuteReader();
        /*
         1 令狐冲
         2 岳不群
         3 任盈盈
         */
        while (reader.Read())
        {
            //取出第一列
            int uid = reader.GetInt32(0);
            //取出第二列
            string name = reader.GetString(1);
            Debug.Log(uid + " " + name);
        }
        cmd.Dispose();
        reader.Close();
        con.Close();
    }


    void test()
    {
        SqliteManager.Instance.Open(Application.dataPath + "/data.db");
        //创建表
        SqliteManager.Instance.ExecuteNonQuery("create table if not exists User(uid integer, name text)");
        //插入一条数据
        SqliteManager.Instance.ExecuteNonQuery("insert into User values(2,'岳不群')");
        //查询
        SqliteDataReader reader = SqliteManager.Instance.ExecuteReader("select * from User");
        //....
        reader.Close();
        SqliteManager.Instance.Close();
    }
}

其中大家看到了SqliteManager的单例所以我们还需要创建一个管理脚本

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

public class SqliteManager : MonoBehaviour {
    public static SqliteManager Instance;

    SqliteConnection con;
    SqliteCommand cmd;
    SqliteDataReader reader;

    void Awake () {
        Instance = this;
    }

    //打开数据库
    public void Open(string fileName)
    {
        con = new SqliteConnection("data source=" + fileName);
        con.Open();
    }

    //关闭数据库
    public void Close()
    {
        con.Close();
    }

    //执行增删改
    public int ExecuteNonQuery(string command)
    {
        cmd = new SqliteCommand(command, con);
        int count = cmd.ExecuteNonQuery();
        cmd.Dispose();
        return count;
    }

    //执行查
    public SqliteDataReader ExecuteReader(string command)
    {
        cmd = new SqliteCommand(command, con);
        reader = cmd.ExecuteReader();
        cmd.Dispose();
        return reader;
    }

}

这样就实现了数据库的增删改查操作了 不喜勿喷 感谢支持

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值