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;
}
}
}
以上就是一個簡單的數據庫工具類,複雜功能也可以在此基礎上添加。針對不同項目可以進行二次封裝。
點個關注,給個讚唄!