Unity使用Mysql添/删/改/查/保姆级
UnityDemo版本
Unity版本:2020.3.25;
Visual Studio版本: 2019;MySql.Data.dll版本:5.2.3
MySql版本:5.7.35
数据库下载地址教程
下载完成后解压到任意盘即可(楼主我选择的是D盘)
点击查看
勾选文件扩展名
右键新建文本文档 修改名称My.ini
修改后
打开my.ini 把以下文本复制到里面去 设置basedir(你的安装目录)
和datadir(数据库存放路径 注意:定义路径一定要有data文件夹)
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录 ----------是你的文件路径-------------
basedir=D:\mysql-5.7.35-winx64
# 设置mysql数据库的数据的存放目录 ---------是你的文件路径data文件夹自行创建
datadir=D:\MysqlData\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
按下Win+R 输入cmd 然后回车
右键点击命令提示符 左键点击以管理员运行
先输入D: 回车
然后输入 cd 解压出来bin文件路径
然后在控制台输入指令
mysqld --install
如上图代表成功
接下来在控制台输入命令
mysqld --initialize --console
输入后稍等一会,才会显示随机出来密码
记下你随机出来密码 楼主随机出来密码是 VPWuVnRro3:)
输入以下指令启动Mysql服务器
net start mysql
如上图表示成功
登录Mysql服务器输入
mysql -u root -p
上图输入你的随机密码
楼主随机出来密码是 VPWuVnRro3:)
如上图显示就成功了
登录成功可以修改密码为123456
输入指令
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
如上图成功
安装完成在控制台 输入quit和exit 退出
quit
exit
接下来进行环境搭配
此电脑右键->属性->高级系统设置
新建系统变量
变量名为:MYSQL_HOME
变量值为你的MySQL安装路径
点击确定
找到path进行编辑
新建环境变量
变量为:%MYSQL_HOME%\bin
%MYSQL_HOME%\bin
在桌面找到此电脑右键此电脑->管理->服务与应用程序->服务
找到mysql->右键属性
将启动类型改为手动(防止开机速度变慢)
以上操作已经完成Mysql环境搭建
每次开机以管理员身份打开控制台输入命令
net start mysql
可视化窗口下载教程
使用可视化窗口
点击连接
在点击mysql 最后弹出以下窗口
点击高级 自定义设置位置
然后点击确定
连接成功如下图
打开数据库出现以下界面
最后点击保存 弹出以下图
dll下载地址
本次Demo下载地址
下载好后直接把资源包直接放进Assets文件中 运行如下环境配置成功
如果下载地址丢失请看下面
1:导入Unity安装目录下的必要程序集、I18N.CJK、I18N、I18N.West;
(因为2020版的Unity默认加载了System.Data.dll,System.Drawing.dll,所以不用再次导入)
安装目录路劲为:Editor\Data\MonoBleedingEdge\lib\mono\unityjit
(注意一定是这个目录下的几个程序集,其他的尝试后无效并且报错)
在Unity Assets 新建Plugins文件 把这三个文件夹 放到里面去 最后在把Mysql.data.dll 也放进去图下
本项目脚本 SqlHelper Mysql访问类
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using MySql.Data.MySqlClient;
using UnityEngine;
/*
也可以使用using块来套用 Mysql操作类 mysql会自动关闭数据库
using(var sql = new SqlHelper(填写对应参数))
{
//手动打开数据库
sql.Open();
}
*/
namespace Imdork.Mysql
{
/// <summary>
/// Mysql添/删/改/查 操作类 切记使用该类方法 除了(Connect方法)其他方法 先调用Open() 使用完后 在Close()掉
/// </summary>
public class SqlHelper : IDisposable
{
string _server, _port, _user, _password, _datename, _format;
string connectStr;
MySqlConnection conn;
/// <summary>
/// 连接数据库构造方法
/// </summary>
/// <param name="host">IP地址</param>
/// <param name="port">端口</param>
/// <param name="user">用户名</param>
/// <param name="passwd">密码</param>
/// <param name="database">数据库名称</param>
/// <param name="format">请填写字体</param>
public SqlHelper(string host, string port, string user, string passwd, string database, string format)
{
Connect(host, port, user, passwd, database, format);
}
/// <summary>
/// 连接数据库构造方法
/// </summary>
/// <param name="host"></param>
/// <param name="port"></param>
/// <param name="user"></param>
/// <param name="passwd"></param>
/// <param name="database"></param>
public SqlHelper(string host, string port, string user, string passwd, string database)
{
Connect(host, port, user, passwd, database);
}
/// <summary>
/// 连接数据库
/// </summary>
/// <param name="host">IP地址</param>
/// <param name="port">端口</param>
/// <param name="user">用户名</param>
/// <param name="passwd">密码</param>
/// <param name="database">数据库名称</param>
/// <param name="format">字体默认utf8</param>
public void Connect(string host, string port, string user, string passwd, string database, string format = "utf8")
{
_server = host;
_port = port; _user = user;
_password = passwd;
_datename = database;
_format = format;
connectStr = string.Format("server={0};port={1};user={2};password={3}; database={4};charset={5}", _server, _port, _user, _password, _datename, _format);//设置连接ip,端口,用户名,密码,以及编码格式
conn = new MySqlConnection(connectStr);//创建连接类
}
/// <summary>
/// 打开数据库连接
/// </summary>
public void Open()
{
conn.Open();//正式打开连接
}
/// <summary>
/// 关闭数据库连接
/// </summary>
public void Close()
{
conn.Close();//关闭连接
}
/// <summary>
/// using块回收资源时执行
/// </summary>
public void Dispose()
{
Close();
}
#region 查询语句
/// <summary>
/// 查询指定字段
/// </summary>
/// <param name="tableName"></param>
/// <param name="items"></param>
/// <returns></returns>
public DataSet Select(string tableName, string[] items)
{
string query = "SELECT " + items[0];
for (int i = 1; i < items.Length; ++i)
{
query += ", " + items[i];
}
query += " FROM " + tableName;
Debug.LogFormat("query: {0}", query);
return ExecuteQuery