微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Unity3D SQLlite的高级用法

sqllite的高级用法=>用更简洁的方式去完成增删改查四个功能

一、创建表

    public void CreatUserTabel()
    {
        if (connection!=null)
        {
            接收
            //sqliteCommand liteCommand= connection.CreateCommand("CREATE TABLE User(UserName varchar(255),Password varchar(255))");
            执行
            //liteCommand.ExecuteNonQuery();
            connection.CreateTable<User>();
        }
    }

二、增加数据

    public void InsertUser()
    {
        if (connection!=null)
        {
            //sqliteCommand liteCommand = connection.CreateCommand("INSERT INTO User VALUES("+"\"admin1\",\"111111\")");
            //liteCommand.ExecuteNonQuery();
            User user = new User()
            {
                UserName = "admin1",
                Password = "11111"
            };
            connection.Insert(user);
        }
    }

三、删除数据

    public void UpdateUser()
    {
        if (connection!=null)
        {
            //sqliteCommand liteCommand = connection.CreateCommand("UPDATE User SET Password=\"22222\"WHERE UserName=\"admin1\"");
            //liteCommand.ExecuteNonQuery();
            User user = new User()
            {
                UserName = "admin",
                Password = "22222"
            };
            connection.Update(user);
        }
    }

四、查询数据

    public void SelecUser()
    {
        if (connection!=null)
        {
            //sqliteCommand liteCommand = connection.CreateCommand("SELECT * FROM User");
            //List<User> list = liteCommand.ExecuteQuery<User>();
            TableQuery<User> user = connection.Table<User>();
            foreach (var item in user)
            {
                print("UserName:" + item.UserName + ",Password:" + item.Password);
            }
        }
    }
    public void SelectUserById()
    {
        if (connection!=null)
        {
            TableQuery<User> user = connection.Table<User>().Where(t => t.UserName == "admin");
            foreach (var item in user)
            {
                print("UserName:" + item.UserName + ",Password:" + item.Password);
            }
        }
    }

五、修改数据

(1)对数据模块User进行修改添加主键)

using System.Collections;
using System.Collections.Generic;
using sqlite4Unity3d;

public class User
{
    [PrimaryKey]
    public string UserName { get; set; }
    public string Password { get; set; }
}

(2)修改数据

    public void UpdateUser()
    {
        if (connection!=null)
        {
            //sqliteCommand liteCommand = connection.CreateCommand("UPDATE User SET Password=\"22222\"WHERE UserName=\"admin1\"");
            //liteCommand.ExecuteNonQuery();
            User user = new User()
            {
                UserName = "admin",
                Password = "22222"
            };
            connection.Update(user);
        }
    }

 六、整体代码展示

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using sqlite4Unity3d;
using System;
using System.IO;

public class sqliteController : MonoBehavIoUr {

    //定义数据库名称
    public string dataBaseName;
    //申明连接对象
    public sqliteConnection connection;

    //创建数据库连接
    public void Creatsqlite()
    {
        string path = Path.Combine(Application.streamingAssetsPath,dataBaseName);
        connection = new sqliteConnection(path,sqliteOpenFlags.ReadWrite|sqliteOpenFlags.Create);
    }

    //数据库建表
    public void CreatUserTabel()
    {
        if (connection!=null)
        {
            接收
            //sqliteCommand liteCommand= connection.CreateCommand("CREATE TABLE User(UserName varchar(255),Password varchar(255))");
            执行
            //liteCommand.ExecuteNonQuery();
            connection.CreateTable<User>();
        }
    }

    //数据库添加数据
    public void InsertUser()
    {
        if (connection!=null)
        {
            //sqliteCommand liteCommand = connection.CreateCommand("INSERT INTO User VALUES("+"\"admin1\",\"111111\")");
            //liteCommand.ExecuteNonQuery();
            User user = new User()
            {
                UserName = "admin1",
                Password = "11111"
            };
            connection.Insert(user);
        }
    }

    //查询数据库数据
    public void SelecUser()
    {
        if (connection!=null)
        {
            //sqliteCommand liteCommand = connection.CreateCommand("SELECT * FROM User");
            //List<User> list = liteCommand.ExecuteQuery<User>();
            TableQuery<User> user = connection.Table<User>();
            foreach (var item in user)
            {
                print("UserName:" + item.UserName + ",Password:" + item.Password);
            }
        }
    }
    public void SelectUserById()
    {
        if (connection!=null)
        {
            TableQuery<User> user = connection.Table<User>().Where(t => t.UserName == "admin");
            foreach (var item in user)
            {
                print("UserName:" + item.UserName + ",Password:" + item.Password);
            }
        }
    }

    //修改数据库数据
    public void UpdateUser()
    {
        if (connection!=null)
        {
            //sqliteCommand liteCommand = connection.CreateCommand("UPDATE User SET Password=\"22222\"WHERE UserName=\"admin1\"");
            //liteCommand.ExecuteNonQuery();
            User user = new User()
            {
                UserName = "admin",
                Password = "22222"
            };
            connection.Update(user);
        }
    }

    //删除数据库数据
    public void DeleteUser()
    {
        if (connection!=null)
        {
            //sqliteCommand liteCommand = connection.CreateCommand("DELETE FROM User WHERE UserName=\"admin1\"");
            //liteCommand.ExecuteNonQuery();
            connection.Delete<User>("admin");
        }
    }

    //断开连接
    public void OnDestroy()
    {
        if (connection!=null)
        {
            connection.Close();
            connection.dispose();
            GC.Collect();
        }
    }

    private void Start()
    {
        Creatsqlite();
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐