目录
- 连接数据库
- 编写脚本
- 查看效果
- 查
- 增
- 删
有段时间没有更新了,现在有点空,就继续写一下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 update
string 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.查 select
SelectData();
}
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 frame
void Update()
{
}
}
查看效果
通过代码中的连接以及增删改查,进入数据库看看有没有生效
虽说是增删改查,但是既然写到了查那就先从查开始吧
查
将脚本挂载到unity上点击run
从控制台打印的数据中可以看到,已经查询到了数据库中的第五条数据
增
同理,现在来试试增加
运行后在navicat中刷新,可以看到增加了一条数据
删
尝试一下把刚加入的数据删除掉
运行后
可以看到数据库中的数据被删除了
那么我们就完成了增删查的操作,剩下改暂时懒得写了,感兴趣的可以自己尝试一下,只要照猫画虎将sql语句修改一下就可以了
以上。