sqlite本地数据库工具类
这是一个获取数据库连接的框架,可以在使用本地数据库的时候继承此类,就不用反复去写数据库的链接操作。
下面直接给出代码(该说的在注释里写的算是比较详细了):
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Mono.Data.Sqlite;
public class SqlFrame {
#region SingleTon
//单例对象
private static SqlFrame instance;
protected SqlFrame() { }
public static SqlFrame GetInstance()
{
if (instance == null)
{
instance = new SqlFrame();
}
return instance;
}
#endregion
//数据库连接信息
private string conStr;
//sqlite数据库三个类
private SqliteConnection con;
private SqliteCommand cmd;
private SqliteDataReader reader;
/// <summary>
/// 打开数据库连接并创建指令对象
/// </summary>
/// <param name="dataBaseName"></param>
public void OpenDataBase(string dataBaseName)
{
//判断数据库名称是否有后缀
if (!dataBaseName.EndsWith(".sqlite"))
{
dataBaseName += ".sqlite";
}
//运行环境,自行查找API找到自己想要的运行环境
#if UNITY_EDITOR
conStr = "Data Source = " + Application.streamingAssetsPath + "/" + dataBaseName;
#endif
//建立连接
con = new SqliteConnection(conStr);
//打开数据库
con.Open();
//创建指令对象
cmd = con.CreateCommand();
}
/// <summary>
/// 执行非查找的sql语句
/// </summary>
/// <param name="query">sql语句</param>
/// <returns>返回受影响的行数</returns>
public int DontSelect(string query)
{
//赋值sql语句
cmd.CommandText = query;
//执行
return cmd.ExecuteNonQuery();
}
/// <summary>
/// 插入数据
/// </summary>
/// <param name="query">sql语句</param>
/// <returns>返回受影响的行数</returns>
public int Insert(string query)
{
return DontSelect(query);
}
/// <summary>
/// 更新数据
/// </summary>
/// <param name="query">sql语句</param>
/// <returns>返回受影响的行数</returns>
public int Update(string query)
{
return DontSelect(query);
}
/// <summary>
/// 删除数据
/// </summary>
/// <param name="query">sql语句</param>
/// <returns>返回受影响的行数</returns>
public int Delete(string query)
{
return DontSelect(query);
}
/// <summary>
/// 执行查找单个数据操作
/// </summary>
/// <param name="query">sql语句</param>
/// <returns>返回查找结果</returns>
public object SelectSingleData(string query)
{
//赋值sql语句
cmd.CommandText = query;
//返回执行结果
return cmd.ExecuteScalar();
}
/// <summary>
/// 执行查询多个数据操作
/// </summary>
/// <param name="query">sql语句</param>
/// <returns>返回查询结果</returns>
public List<ArrayList> SelectMutipleData(string query)
{
//赋值sql语句
cmd.CommandText = query;
//执行sql语句保存结果在reader中
reader = cmd.ExecuteReader();
//实例化一个list集合保存所有查出的数据
List<ArrayList> result = new List<ArrayList>();
while (reader.Read())
{
//实例化一个集合保存每一行数据
ArrayList currentRow = new ArrayList();
//将当前行数据添加到集合
for (int i = 0; i < reader.FieldCount; i++)
{
//将当前列数据添加入集合
currentRow.Add(reader.GetValue(i));
}
//保存行数据
result.Add(currentRow);
}
//关闭读取器
reader.Close();
//返回结果
return result;
}
/// <summary>
/// 关闭数据库方法
/// </summary>
public void CloseDataBase()
{
if (reader != null)
{
reader.Close();
reader = null;
}
if (cmd != null)
{
cmd.Dispose();
cmd = null;
}
if (con != null)
{
con.Close();
con = null;
}
}
}
以上就是一个简单的数据库工具类,复杂功能也可以在此基础上添加。针对不同项目可以进行二次封装。
点个关注,给个赞呗!