小例子 数据库 Sqlite SQL语句

小例子

Json解析

先把保存下来的.json后缀名改成.txt,然后放到工程里

using System;
using UnityEngine;

[System.Serializable]
public class NewsData{
    public NewsResult result;
    public int error_code;
}
[System.Serializable]
public class NewsResult{
    public NewsContent[] data;
}
[System.Serializable]
public class NewsContent{
    public string title;
    public string date;
    public string category;
    public string author_name;
}

public class JsonParseHomework : MonoBehaviour {
    
    //unity内置 专门存txt文档的
	public TextAsset jsonText;
    //拿到预设体
    public GameObject itemPrefab;
    
    private void Start(){
        //解析
        NewsData data = JsonUtility.FromJson<NewsData>(jsonText.text);
        
        for(int i = 0; i < data.result.data.Length; i++){
            //生成
            GameObject item = Instantiate(itemPrefab);
            //显示标题
            item.transform.GetChild(0).GetComponent<Text>().text = 
                data.result.data[i].title;
            //显示作者
            item.transform.GetChild(1).GetComponent<Text>().text = 
                data.result.data[i].author_name;
            //显示日期
            item.transform.GetChild(2).GetComponent<Text>().text = 
                data.result.data[i].date;
            //预设体放到Content里面
            item.transform.SetParent(transform);
        }
    }
}

数据库

数据库分本地数据库与网络数据库

本地数据库用的轻量级数据库Sqlite

网络游戏都是放在服务器里的 后端

Sqlite

Design 设计 
Data 数据 
SQL
表头(字段)
Type类型  TEXT文本  INTEGER整形  VARCHAR变长的  FLOAT浮点数
Constrains限制  Primary Key主键(是唯一标识 不能重复)  Not NULL不能为空  Unique其他字段也可以不重复

关系型数据库框架

SQL语句

SQL语句里面关键词不区分大小写

增加

Insert 插入

插入全数据 (有几个字段插入几个) Insert Into 表格名称 Values(这里有几个值写几个值 数的话直接写,字符串引起来 引号的话双引号单引号都可以 一般都用单引号)
插入部分数据(有的插入没有的空着) Insert Into 表格名称 (添加要输入的字段名称) Values (前面写几个字段这里写几个值)

修改

Set 设置

Where 限制

Update 表格名称 Set 字段=新值 Where 字段=某值

查询

Select 查询

Select 字段名字 From 表格名称 Where 列名=某值

删除

Delete From 表格名称 Where 条件

通过代码对数据库进行增删改查

先导入dll

将DLL导⼊⼯程Plugins⽂件夹

Mono.Data.Sqlite 	Unity\Editor\Data\Mono\lib\mono\2.0\Mono.Data.Sqlite.dll      这两个从Unity原文件里找
System.Data      	UnityEditor\Data\Mono\lib\mono\2.0\System.Data.dll
Sqlite3      https://www.sqlite.org/download.html     (这个只有在windows里用得到 Linux和Mac不用)
using UnityEngine;
using Mono.Data.Sqlite;//引用命名空间

public class SQLDemo : MonoBehaviour {
	//数据库连接对象
	private SqliteConnection con;
    //数据库指令对象
    private SqliteCommand command;
    //路径
    private string connectionStr;
    
    private SqliteDataReader reader;
    
    private void Start(){
        //数据源路径
        connectionStr = "Data Source = " + Application.StreamingAssetsPath + "/HeroDatabase.sqlite";
        //实例化连接对象
        con = new SqliteConnection(connectionStr);
        //打开连接
        con.Open();
        //创建指令对象
        command = con,CreateCommand();
        
        //执行操作
        //SQLInsert();
        //SQLUpdate();
        //SQLSelectSingleData();
        //SQLSelectMutipleData();
    }
    
    //查多个
    private void SQLSelectMutipleData(){
        command.CommandText = "Select * From HeroTable";
        //执行SQL语句返回所有查询到的结果到读取器
        reader = command.ExecuteReader();
        //读取下一行  没有下一行false,否则true
        reader.Read();
        
        while(reader.Read()){//读取行数
            Debug.Log(reader.FieldCount);//列数
            for(int i = 0; i < reader.FieldCount; i++){
                //读取当前第i行的值
				object val = reader.GetValue(i);
                Debug.Log(val);
            }
        }
        //关闭读取器
        reader.Close();
    }
    
    
    //查询一个
	private void SQLSelectSingleData(){
        command.CommandText = "Select HeroAD From HeroTable Where HeroName='aaa'";
        //执行SQL语句 返回查询到的第一个结果【适用于查询一个结果(一行一列)】
        object selectResult = command.ExecuteScalar();
        Debug,Log(selectResult);
    }
    
    //修改
    private void SQLUpdate(){
        command.CommandText = "Update HeroTable Set HeroLevel=2 Where HeroName='aaa'";
        int rows = command.ExecuteNonQuery();
    }
        
    //增加   
    private void SQLInsert(){
         //设置SQL语句
        command.CommandText = "Insert Into HeroTable Values ('aaa', 1, 1, 1)";
        //执行SQL语句返回受影响的行数【适用于增删改】
        int rows = command.ExecuteNonQuery();
    }
    
    //关闭应用程序执行一次
    private void OnApplicationQuit(){
        //释放
        command.Dispose();
        //关闭连接
        con.Close();
    }
    
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值