Unity数据库的学习笔记

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

public class DataBaseTool : Singleton<DataBaseTool> {

    public string DataBaseName="LOLData.sqlite";

    private SqliteConnection conn;
    private SqliteCommand command;
    private SqliteDataReader reader;
    private string datapath="";

    public DataBaseTool(){
        if(conn==null){
        datapath= "Data Source=" + Application.streamingAssetsPath + "/" + DataBaseName;
            #if UNITY_ANDRIOD
            datapath=AndriodPaltformSet();
            #endif
            try{
                conn = new SqliteConnection (datapath);
            }catch(System.Exception e){
                Debug.Log ("创建数据库连接失败...");
                Debug.LogError (e.Message);
            }
        }
    }

    //安卓平台数据库设置
    public string AndriodPaltformSet(){
        string path = "URI = file:" + Application.persistentDataPath + "/" + DataBaseName;

        //Android APK中数据库文件的路径
        string androidPath = "jar:file://" + Application.dataPath + "!/assets/" + DataBaseName;
        //Android沙盒路径
        string androidFilePath = Application.persistentDataPath + "/" + DataBaseName;
        //如果Android项目源文件中不存在数据库文件,说明没有加载过,需要加载
        if(!File.Exists(androidFilePath))
        {
            //从APK路径拿到Sqlite数据库文件,下载
            WWW www = new WWW(androidPath);
            //下载未完成时,保持等待
            while(!www.isDone){}
            //下载完成,IO流写入到沙盒路径
            File.WriteAllBytes(androidFilePath, www.bytes);
        }
        return path;
    }

    /// <summary>
    /// The .打开数据库连接
    /// </summary>
    private void OpenConnection(){

        if(conn!=null){
            try{
            conn.Open ();
            }catch(System.Exception e){
                Debug.Log ("数据库打开失败...");
                Debug.LogError (e.Message);
            }
        }
    }

    /// <summary>
    /// 关闭数据库连接
    /// </summary>
    private void CloseConnection(){
        if(conn!=null){
            try {
                conn.Close();
            } catch (System.Exception ex) {
                Debug.Log ("数据库连接关闭失败...");
                Debug.LogError (ex.Message);
            }
        }
    }

    /// <summary>
    /// 获取一行数据的方法
    /// </summary>
    /// <returns>The row data.</returns>
    #region 对外接口方法
    public Dictionary<string ,object> GetRowData(string sql){
        OpenConnection ();
        command = conn.CreateCommand ();
        command.CommandText = sql;
        SqliteDataReader reader= command.ExecuteReader ();
        Dictionary <string,object> data = new Dictionary<string, object> ();
        if(reader.Read()){
            for (int i = 0; i < reader.FieldCount; i++) {
                data.Add( reader.GetName (i),reader.GetValue(i)) ;
            }
        }
        reader.Close ();
        reader = null;
        command.Dispose ();
        command = null;
        CloseConnection ();
        return data;
    }
    #endregion

    /// <summary>
    /// 获取一张表的方法
    /// </summary>
    /// <returns>The all row data.</returns>
    /// <param name="sql">Sql.</param>
    public List<Dictionary<string,object>> GetAllRowData(string sql){
        OpenConnection ();
        command = conn.CreateCommand ();
        command.CommandText = sql;
        SqliteDataReader reader = command.ExecuteReader ();

        List<Dictionary<string,object>> allData = new List<Dictionary<string, object>> ();
        while (reader.Read()) {
            Dictionary<string,object> rowData = new Dictionary<string, object> ();
            for (int i = 0; i < reader.FieldCount; i++) {
                rowData.Add (reader.GetName(i),reader.GetValue(i));
            }
            allData.Add (rowData);
        }
        reader.Close ();
        reader = null;
        command.Dispose ();
        command = null;
        CloseConnection ();
        return allData;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的体育馆管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本体育馆管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此体育馆管理系统利用当下成熟完善的SpringBoot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了用户在线选择试题并完成答题,在线查看考核分数。管理员管理收货地址管理、购物车管理、场地管理、场地订单管理、字典管理、赛事管理、赛事收藏管理、赛事评价管理、赛事订单管理、商品管理、商品收藏管理、商品评价管理、商品订单管理、用户管理、管理员管理等功能。体育馆管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:体育馆管理系统;SpringBoot框架;Mysql;自动化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值