Unity (五) Sqlite数据库之:Framework

 写了个低级框架,偶尔可以拿来用用

1 using System.Collections;
  2 using System.Collections.Generic;
  3 using UnityEngine;
  4 using Mono.Data.Sqlite;
  5
  6 public class SQLFramework
  7 {
  8
  9
 10     private static SQLFramework instance;
 11     private SQLFramework() { };
 12
 13     public static SQLFramework GetInstance()
 14     {
 15         if (instance == null)
 16         {
 17             instance = new SQLFramework();
 18         }
 19         return instance;
 20     }
 21
 22
 23
 24     #region 数据库基础对象
 25
 26     private SqliteConnection conn;
 27
 28     private SqliteCommand command;
 29
 30     private SqliteDataReader reader;
 31
 32     #endregion
 33
 34     private string sqlConnectionPath;
 35
 36     /// <summary>
 37     /// 设置数据库名称
 38     /// </summary>
 39     public void SetDatabaseName(string databaseName)
 40     {
 41         //添加后缀
 42         if (!databaseName.Contains(".sqlite"))
 43         {
 44             databaseName += ".sqlite";
 45         }
 46         //拼凑路径
 47         sqlConnectionPath = "Data Source = " + Application.streamingAssetsPath + "/" + databaseName;
 48         //实例对象
 49         conn = new SqliteConnection(sqlConnectionPath);
 50         command = conn.CreateCommand();
 51     }
 52
 53     /// <summary>
 54     /// 打开数据库
 55     /// </summary>
 56     public void OpenDatabase()
 57     {
 58         try
 59         {
 60             conn.Open();
 61         }
 62         catch (SqliteException ex)
 63         {
 64             Debug.LogWarning("数据库打开异常:" + ex.ToString());
 65         }
 66     }
 67
 68     /// <summary>
 69     /// 关闭数据库
 70     /// </summary>
 71     public void CloseDatabase()
 72     {
 73         try
 74         {
 75             //读取连接关闭
 76             if (!reader.IsClosed)
 77             {
 78                 reader.Close();
 79             }
 80             //数据库关闭
 81             conn.Close();
 82         }
 83         catch (SqliteException ex)
 84         {
 85             Debug.LogWarning("数据库关闭异常:" + ex.ToString());
 86         }
 87     }
 88
 89     /// <summary>
 90     /// 无返回式的执行(增删改系列)
 91     /// </summary>
 92     /// <param name="query">SQL语句.</param>
 93     public virtual void NullReturnExcute(string query)
 94     {
 95         try
 96         {
 97             command.CommandText = query;
 98             command.ExecuteNonQuery();
 99         }
100         catch (SqliteException ex)
101         {
102             Debug.LogWarning("语句执行异常:" + ex.ToString());
103         }
104     }
105
106
107     /// <summary>
108     /// 执行查询单个数据
109     /// </summary>
110     /// <returns>数据.</returns>
111     /// <param name="query">SQL语句.</param>
112     public virtual object SingleDataExcute(string query)
113     {
114         try
115         {
116             command.CommandText = query;
117             object result = command.ExecuteScalar();
118
119             return result;
120         }
121         catch (SqliteException ex)
122         {
123             Debug.LogWarning("语句执行异常:" + ex.ToString());
124             return null;
125         }
126     }
127
128     /// <summary>
129     /// 执行查询多个数据
130     /// </summary>
131     /// <returns>The data excute.</returns>
132     /// <param name="query">Query.</param>
133     protected virtual List<ArrayList> MultipleDataExcute(string query)
134     {
135         try
136         {
137             command.CommandText = query;
138             reader = command.ExecuteReader();
139             //结果
140             List<ArrayList> result = new List<ArrayList>();
141             while (reader.Read())
142             {
143                 //存储单行数据
144                 ArrayList tempList = new ArrayList();
145                 //循环存储每一列
146                 for (int i = 0; i < reader.FieldCount; i++)
147                 {
148                     tempList.Add(reader.GetValue(i));
149                 }
150                 //存储当前行
151                 result.Add(tempList);
152             }
153             reader.Close();
154             //返回结果
155             return result;
156         }
157         catch (SqliteException ex)
158         {
159             Debug.LogWarning("语句执行异常:" + ex.ToString());
160             //读取连接关闭
161             if (!reader.IsClosed)
162             {
163                 reader.Close();
164             }
165             return null;
166         }
167     }
168 }
时间: 2024-12-22 09:26:14

Unity (五) Sqlite数据库之:Framework的相关文章

unity之SQLite数据库的基本使用

//数据库连接对象SqliteConnection con;//数据库命令对象SqliteCommand command;//数据库读取对象SqliteDataReader reader; //数据库路径 unity中把数据库文件放在Assets文件夹下的StreamingAssets文件内 例如:数据库名 stu.sqlite string sqlitePath = "Data Source=" + Application.streamingAssetsPath +"/st

【玩转SQLite系列】(六)SQLite数据库应用案例实现历史搜索记录

转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53366564 本文出自[DylanAndroid的博客] [玩转SQLite系列]文章目录 [玩转SQLite系列](一)初识SQLite,重拾sql语句 [玩转SQLite系列](二)SQLite创建和打开数据库的三种方式 [玩转SQLite系列](三)通过sql语句操作SQLite数据库 [玩转SQLite系列](四)通过Android提供的API操作SQLite数据库

14 SQLite数据库

SQLite数据库SQLite 是一款轻型的数据库SQLite 的设计目标是嵌入式的SQLite 占用资源低SQL 指结构化查询语言SQL 使我们有能力访问数据库SQL 是一种 ANSI 的标准计算机语言 可视化SQLite操作:数据大多以表的形式存储在数据库中,创建数据库就是将有所关联数据存储到一张表格中,所以可视化数据库操作就是在创建一个个的表格.在这里使用到SQLiteManager SQL语法(创建.增.删.查.改)创建表格create table if not exists 表名(字段

让EF飞一会儿:如何用Entity Framework 6 连接Sqlite数据库

小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03 获取Sqlite 1.可以用NuGet程序包来获取,它也会自动下载EF6 2.在Sqlite官网上下载对应的版本:http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.

[UWP小白日记-11]在UWP中使用Entity Framework Core(Entity Framework 7)操作SQLite数据库(一)

前言 本文中,您将创建一个通用应用程序(UWP),使用Entity Framework Core(Entity Framework 7)框架在SQLite数据库上执行基本的数据访问. 准备: Entity Framework Core(Entity Framework 7)下文将简称:EF 1.在UWP中使用EF需要更新Microsoft.NETCore.UniversalWindowsPlatform到大于“5.2.2”的版本. 2.直接在“程序包管理器控制台”输入命令来更新:Update-P

使用Entity Framework Core Code First创建SQLite数据库

Entity Framework Core(以下简称"EF Core")支持多种数据库.在这篇文章中,我们看看如何使用EF Core的Code First方式创建SQLite数据库 下载SQLite,解压后会得到三个文件,放到c:\sqlite目录下 我们先创建一个.NET Core控制台程序 添加EF Core for SQLite组件库 "dependencies": { "Microsoft.EntityFrameworkCore.Sqlite&qu

Unity&amp;Sqlite数据库

Sqlite是一个跨平台关系型小型数据库,非常便利,适合于嵌入式设备:对于Sqlite数据库来说,这个数据库是以文件的形成存在的(比如data.db):数据库是由表组成的,在一个数据库里面可以存储多个表,多个表之间往往存在某种关系, 对于一个表的操作:增删改查,语句和SQLServer语句一样:在表中,有主键(不能为空,也不能重复,可以添加自增功能).外键(和别的表有关联).唯一键(unique可以为空,不能重复). 在控制台中,使用Sqlite的语句如下: sqlite3 data.db ;

[Unity]SQLite-C#调用 SQLite数据库-Unity操作

SQLite数据库-Unity操作 项目开发的时候,经常会遇到的一种需求,数据存储 离线缓存的数据类型很多,大致分成两类 字符串文本数据 多媒体数据 字符串数据的类型只有字符串,但是结构有很多: xml json md5 base64 普通字符串 多媒体数据的类型: 图片(jpg,png,gif...) 音频(mp3,aif...) 视频(mp4,mpv) 通常用数据库来存储字符串文本类型的数据,但是需要注意的是数据库同时也能存储多媒体类型的数据 关系数据库 在一个给定的应用领域中,所有实体及实

如何用Entity Framework 6 连接Sqlite数据库(转)

要想EF6 Code First 模式支持Sqlite 得有一下几步: 一.需要安装 sqlite-netFx451-setup-bundle-x86-2013-1.0.92.0.exe 来让VS添加Ado.net 时有sqlite可选 1) 自己去http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki 下载对应.net 版本的安装文件( *注意下载文件名带bundle,这个才会对vs进行插件支持 ) 2)安装