目录
- 连接数据库
- 编写脚本
- 查看效果
- 查
- 增
- 删
有段时间没有更新了,现在有点空,就继续写一下unity的脚本,这次就来写一下关于unity连接数据库的内容
连接数据库
无论是什么语言与应用场景,总有一项东西是绕不开的,那就是数据库(各种意义上),毕竟永远是在和数据打交道(笑),而unity也不例外,不论是登录还是存储游戏数据,数据库的影子无处不子,在这里我们就浅连接一下数据库,进行基础的增删改查工作
当然,下载mysql和可视化软件(如navicat)之类的工作在此就不做赘述,可以通过其他方式自行下载,这里只关注如何连接与简单的操作
注意:在连接数据库的时候注意各种软件的版本,版本不对应就无法生效,很多问题都是这样产生的,而且基本无法通过除了重新安装意外的方式解决,请读者主意,笔者在此使用的是5.7版本mysql
那么就正式开始
像java的导入jar包一样,unity也有自己的方式搭建与mysql连接的地基,导入sql连接文件
先在unity中创建一个文件夹
导入文件(文件已上传,不行了再用网盘之类的存一下)
注意甄别版本,笔者的unity为2022版,mysql为5.7,需要传入的文件为以下这些内容
编写脚本
关于获取数据库和实现增删改查的内容
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using MySql.Data.MySqlClient;//MySql连接器命名空间
using System;public class mysql : MonoBehaviour
{//创建数据库//服务器名称,端口号,数据库,用户名,密码,数据格式,连接形式// Start is called before the first frame updatestring strConn = "server =localhost;port=3306;database=;user=root;password=;Charset=utf8";//这里填自己的数据库名称和密码//创建Mysql连接器MySqlConnection sqlConnection;void Start(){//操作数据库的第一步sqlConnection = new MySqlConnection(strConn);try{sqlConnection.Open();Debug.Log(sqlConnection.State);//在代码中进行了分别的测试,也许我不应该放到一起什么的,应该分开来看,不过都这样了,就暂且如此吧,如果要进行别的操作只需要注释掉对应的操作就行了//1.增 insert//InsterData();//2.删 delet//DeletData();//3.改 update//UpdateData();//4.查 selectSelectData();}catch(System.Exception) {throw;}finally{if(sqlConnection.State.ToString()=="open")//操作数据库的最后一步sqlConnection.Close();Debug.Log(sqlConnection.State);}}
//同理,在写sql语句的时候将名称改为自己的表名和属性private void SelectData(){//写sql语句string strSql = "select * from qquser where QQUserId= 5;";//使用MySqlCommand发送语句using(MySqlCommand mySqlCommand = new MySqlCommand(strSql, sqlConnection)){//执行ExecuteReader方法using(MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader()){//通过MySqlDataReader读取数据while (mySqlDataReader.Read()){//使用GetXXX获取不同类型的数据Debug.Log(mySqlDataReader.GetString(0));Debug.Log(mySqlDataReader.GetString(1));//Debug.Log(mySqlDataReader.GetString(2));}}}//throw new NotImplementedException();}private void UpdateData(){throw new NotImplementedException();}private int DeletData(){string strSql = "delete from qquser where QQUserId=7;";using (MySqlCommand mySqlCommand = new MySqlCommand(strSql, sqlConnection)){//执行ExecuteNonQuery方法return mySqlCommand.ExecuteNonQuery();throw new NotImplementedException();}}private void InsterData(){//写sql语句//string strSql = "insert into student(name,age) values('虚竹',25);";string strSql = "insert into qquser(QQUserId,QQPassword) values(7,321);";//使用MySqlCommand发送语句using (MySqlCommand mySqlCommand = new MySqlCommand(strSql, sqlConnection)){
//执行ExecuteNonQuery方法mySqlCommand.ExecuteNonQuery();throw new NotImplementedException();}}// Update is called once per framevoid Update(){}
}
查看效果
通过代码中的连接以及增删改查,进入数据库看看有没有生效
虽说是增删改查,但是既然写到了查那就先从查开始吧
查
将脚本挂载到unity上点击run
从控制台打印的数据中可以看到,已经查询到了数据库中的第五条数据
增
同理,现在来试试增加
运行后在navicat中刷新,可以看到增加了一条数据
删
尝试一下把刚加入的数据删除掉
运行后
可以看到数据库中的数据被删除了
那么我们就完成了增删查的操作,剩下改暂时懒得写了,感兴趣的可以自己尝试一下,只要照猫画虎将sql语句修改一下就可以了
以上。