Unity 中使用SQLite数据库

news2024/11/15 20:39:37

文章目录

  • 0.参考文章
  • 1.Presentation —— 介绍
  • 2.(SQLite4Unity3d)Unity中直接使用SQLite的插件
  • 3.创建数据库
  • 4.创建表
  • 5.Navicat Premium(数据库可视化)
  • 6.增删改查
    • 6.1 增
    • 6.2 删
    • 6.3 改
    • 6.4 查

0.参考文章

https://blog.csdn.net/ChinarCSDN/article/details/106049591

1.Presentation —— 介绍

为什么要使用SQLite数据库?

请查看这里(这是一位叫 秦元培 的博主写的博客),详细的阐述了什么是SQLite以及为什么使用,还附有使用案例

2.(SQLite4Unity3d)Unity中直接使用SQLite的插件

下载地址
在这里插入图片描述

遇到的问题:工程里面的sqlite3.dll报错,解决办法:使用sqlite3官网下载的dll
下载地址
在这里插入图片描述

3.创建数据库

首先创建一个脚本,引用SQLite4Unity3d,定义一个数据库连接字段

/// <summary>
/// 数据库连接
/// </summary>
public SQLiteConnection Connection;

void Start()
{
    //参数1.数据库地址,一般放在StreamingAssets文件夹中,2.开启读写和创建数据库权限
    Connection = new SQLiteConnection(Application.streamingAssetsPath+ "/TestDatabase.db",SQLiteOpenFlags.ReadWrite| SQLiteOpenFlags.Create);
}

4.创建表

数据类:

using SQLite4Unity3d;

public class TestTable
{
    [PrimaryKey, AutoIncrement] //设置主键 自动增长
    public int    Id     { get; set; }//Id作为主键
    public string Name   { get; set; }
    public int    Age    { get; set; }
    public float  Height { get; set; }
    public float  Weight { get; set; }
    
    /// <summary>
    /// 重写ToString函数,方便控制台打印
    /// </summary>
    /// <returns></returns>
    public override string ToString()
    {
        return string.Format("[Person: Id={0}, Name={1},  Age={2}, Height={3}],Weight={4}]", Id, Name, Age, Height, Weight);
    }
}

创建表:

void Start()
{
    Connection = new SQLiteConnection(Application.streamingAssetsPath+ "/TestDatabase.db",SQLiteOpenFlags.ReadWrite| SQLiteOpenFlags.Create);
    Connection.CreateTable<TestTable>();//创建表
}

运行工程:
在工程的StreamingAssets文件夹中就可以看到我们创建出来的数据库
在这里插入图片描述

5.Navicat Premium(数据库可视化)

下载破解教程
使用步骤:
首先点击连接,选择SQLite
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.增删改查

6.1 增

单个增加:
注意: float类型数据精度有所丢失,解决方案就是将float类型的数据转为string类型保存下来,使用的时候再转回float

void InsertData()
{
    var p = new TestTable
    {
        Id = 1,
        Name = "Chinar",
        Age = 999,
        Height = 180.5f,
        Weight = 140.3f
    };
    Connection.Insert(p);
}

在这里插入图片描述
多个增加:

void InsertData()
{
    Connection.InsertAll(new[]  //插入一个数组,数组里是多条数据
    {
        new TestTable
        {
            Name = "小明",
            Age = 12,
            Height = 130.3f,
            Weight = 100.2f
        },
        new TestTable
        {
            Name   = "老皮",
            Age    = 12,
            Height = 133f,
            Weight = 96.2f
        },
        new TestTable
        {
            Name   = "狗子",
            Age    = 12,
            Height = 140f,
            Weight = 120.2f
        },
        new TestTable
        {
            Name   = "刚子",
            Age    = 13,
            Height = 135f,
            Weight = 85.6f
        },
        new TestTable
        {
            Name   = "阿豪",
            Age    = 13,
            Height = 123.4f,
            Weight = 99f
        },
    });
}

在这里插入图片描述

6.2 删

一、查找准确数据删除:

//首先查找到名字为小明的那一条数据,然后将其删除
var data = Connection.Table<TestTable>().Where(_ => _.Name == "小明").FirstOrDefault();
Connection.Delete(data);//删除

在这里插入图片描述
二、删除主键:

//删除主键为3的数据
Connection.Delete<TestTable>(3);

在这里插入图片描述

6.3 改

//获取到名字为“小明”的数据
var data = Connection.Table<TestTable>().Where(_ => _.Name == "小明").FirstOrDefault();
//更改 Weight 
data.Weight = 200f;
//更新数据
Connection.Update(data);

在这里插入图片描述

6.4 查

var datas = Connection.Table<TestTable>().Where(_=>_.Age == 12);//获取到所有Age为12的数据
foreach (var v in datas)//遍历
{
    Debug.Log(v.Name);
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2088704.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

结合系统架构设计的非功能性需求开发一套文化用品商城系统

案例 阅读以下关于软件系统设计的叙述&#xff0c;在答题纸上回答问题 1 至问题 3。 【题目】 某文化产业集团委托软件公司开发一套文化用品商城系统&#xff0c;业务涉及文化用品销售、定制、竞拍和点评等板块&#xff0c;以提升商城的信息化建设水平。该软件公司组织项目组完…

2024最新盘点:这12款plm项目管理系统值得推荐!

本文将盘点主流的plm项目管理系统&#xff0c;为企业选型提供参考 。 高效的plm项目管理系统是确保工程顺利进行、按时交付以及控制成本的关键&#xff0c;据美国建筑行业研究院的研究数据表明&#xff0c;实施高效项目管理的建筑企业&#xff0c;能够将项目成本降低 5%-10%。我…

1.7 离散频率

1.7 离散频率 离散时间和采样率 模拟到数字转换器 (ADC) 对连续时间信号进行采样以生成离散时间样本。对于数字信号处理器来说&#xff0c;该信号仅存储在内存中作为一系列数字。因此&#xff0c;采样率 F S F_S FS​ 的知识是数字域中信号处理的关键。 对于时间而言&#…

光敏电阻传感器详解(STM32)

目录 一、介绍 二、传感器原理 1.光敏电阻传感器介绍 2.原理图 三、程序设计 main.c文件 ldr.h文件 ldr.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 光敏电阻器是利用半导体的光电导效应制成的一种电阻值随入射光的强弱而改变的电阻器&#xff0c;又称为光…

计网_整体概念逻辑简单过一遍

1. 简述四层TCP/IP 网络模型 由于 OSI 模型实在太复杂&#xff0c;提出的也只是概念理论上的分层&#xff0c;并没有提供具体的实现方案。 事实上&#xff0c;我们比较常见&#xff0c;也比较实用的是四层模型&#xff0c;即 TCP/IP 网络模型&#xff0c; 1.1 应用层 在四…

萤石云 C++ SDK使用指南

今天继续指南系列&#xff0c;给出了萤石云QtDemo配置使用以及sdk开发中常见问题的指南 SDK下载 一、demo使用配置 1、demo环境配置 Demo 所使用Qt SDK版本&#xff1a;Qt4.8.5 Demo两种开发模式&#xff1a; 下载Qt Creator for Windows&#xff0c;使用Qt Creator作为I…

计算机毕业设计选题推荐-办公管理系统-Java/Python项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

【方法】如何编辑“只读方式”下的Word文档?

以“只读方式”打开的Word文档&#xff0c;怎样才能正常编辑呢&#xff1f;Word文档有两种“只读方式”&#xff0c;我们分别来看看如何编辑。 方式一&#xff1a;无密码的只读方式 当Word文档设置了无密码的“只读方式”&#xff0c;打开文档后会看到提示“是否以只读方式打开…

设计与实现基于Java的零工市场系统

零工市场&#xff0c;也被称为临时工市场或自由职业市场&#xff0c;为求职者和雇主提供了一个灵活的、按需匹配的工作机会平台。为了满足日益增长的零工经济需求&#xff0c;我们设计并实现了一个基于Java的零工市场系统&#xff0c;该系统具备用户管理、任务发布、任务申请、…

基于Python的音乐推荐系统的设计与实现---附源码92641

摘 要 基于Python大数据技术的音乐推荐系统设计与实现旨在利用大数据处理和分析技术&#xff0c;为用户提供个性化、精准的音乐推荐服务。该系统将结合用户行为数据、音乐特征和大规模数据集&#xff0c;采用机器学习和深度学习算法&#xff0c;实现智能化的音乐推荐功能。 系统…

[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-21读写I2C接口EEPROM实验

软件版本&#xff1a;VIVADO2021.1 操作系统&#xff1a;WIN10 64bit 硬件平台&#xff1a;适用 XILINX A7/K7/Z7/ZU/KU 系列 FPGA 实验平台&#xff1a;米联客-MLK-H3-CZ08-7100开发板 板卡获取平台&#xff1a;https://milianke.tmall.com/ 登录“米联客”FPGA社区 http…

B样条曲线法

1. B样条曲线法概述 1.1 B样条曲线法的定义与发展 B样条曲线法是一种基于控制点和节点向量的数学模型&#xff0c;用于几何建模和曲线设计。该方法由Paul de Casteljau和Pierre Bezier等人在20世纪60年代提出&#xff0c;并迅速发展成为一种广泛应用于计算机辅助设计&#xf…

Docker php文件本地包含--pearcmd.php利用

目录 前言 环境搭建 pearcmd.php巧妙利用 渗透 前言 docker包含日志文件&#xff0c;基本不可能&#xff0c;就以我自身的一个项目来说&#xff0c;在尝试包含日志文件时发现&#xff0c;客户将他的日志文件从定向到了设备文件&#xff0c;而php没有包含设备文件的权限 然…

【Python Web开发】Flask+HTML学习笔记

目录 Flask框架一、安装flask库二、运行一个网页三、库函数及变量 HTML标签语言一、基本格式二、标签2.1 块级标签2.1.1 标题2.1.2 div2.1.3 图片2.1.4 列表2.1.5 表格 2.2 行内标签2.2.1 span2.2.2 超链接2.2.3 输入 2.3 其他标签2.3.1 提交表单 Flask框架 一、安装flask库 …

Unity 3D学习资料集合

本文包含了unity3D 游戏开发相关的学习资料&#xff0c;包含了入门、进阶、性能优化、面试和书籍等学习资料&#xff0c;含金量非常高&#xff0c;在这里分享给大家&#xff0c;欢迎收藏。 学习社区 1.Unity3D开发者 Unity3D开发者论坛是一个专注于Unity引擎的开发者社区。在这…

国内AI工具分类大盘点,这些神器你都用过了吗?

AI爆发到现成已经快2年了&#xff0c;基本上我自己也使用了近2年的AI产品。国内、外的AI产品体验了很多。 从最初文本聊天类的gpt、new bing、文心一言、通义千问&#xff0c;到后面绘图类Midjourney、Stable Diffusion、文心一格、通义万相等等。 在这里来分享我自己使用的一…

游戏设计师:创造虚拟世界的艺术家

游戏设计师&#xff0c;这个听起来富有创造性和趣味的职业&#xff0c;正逐渐成为数字娱乐行业中备受瞩目和追捧的角色。他们是虚拟世界的建造者、体验的创造者和叙事的编织者。在电子游戏风靡全球的今天&#xff0c;游戏设计师的工作远不只是画画或编故事那么简单&#xff0c;…

如何设计接口测试用例?

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 接口测试是一种软件测试方法&#xff0c;用于验证软件系统中不同组件或模块之间的接口是否正常工作&#xff0c;主要关注于接口的输入和输出&#xff0c;以及接…

Linux的远程登录教程(超详细)

我们在进行远程登录时要用的一种协议叫SSH&#xff0c;那什么叫SSH呢&#xff1f; SSH&#xff08;Secure Shell&#xff09;是一种网络协议&#xff0c;用于在不安全的网络中提供安全的远程登录和其他网络服务。它通过加密技术确保数据在传输过程中的机密性和完整性&#xff…

ESP32-IDF http请求崩溃问题分析与解决

文章目录 esp32s3 http请求崩溃问题代码讨论修正后不崩溃的代码esp32相关文章 ESP32S3板子, 一运行http请求百度网站的例子, 就会panic死机, 记录下出现及解决过程. esp32s3 http请求崩溃 一执行http请求的perform就会崩溃, 打印如图 ESP32-IDF 的http请求代码是根据官方dem…