下载对应版本的dll文件,包括Unity版本和MysqlServer版本
本项目使用的是
MysqlServer8.0
Unity2020.3.21
所以下载的dll文件需要满足这两个版本
1.mysql8.0以上
2.4.5以及4.5以下(只是猜测,4.6以上unity也确实不能识别)

综上,选择了8.0.11版本,网址如下
https://downloads.mysql.com/archives/c-net/

下面是具体脚本:

using MySql.Data.MySqlClient;
using System.Data;
using System.Collections.Generic;
using Debug = UnityEngine.Debug;
namespace CSharpMysql
{/*select * from item where guid = 1000;insert into item(guid) values(1231);insert into item guid=123,item_id=21312;UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause]DELETE FROM table_name [WHERE Clause]*/public static class MysqlHelper{private static MySqlConnection connection;static MysqlHelper(){connection = new MySqlConnection(MySqlConnectString.New().ToString());}public static DataTable SelectFrom(string table){MySqlCommand command = new MySqlCommand();command.CommandText = $"select * from {table};";return ExecuteReader(command);}// MySQL 的 WHERE 子句的字符串比较是不区分大小写的。 你可以使用 BINARY 关键字来设定 WHERE 子句的字符串比较是区分大小写的。public static DataTable SelectFrom(string table, params MysqlData[] datas){MySqlCommand command = new MySqlCommand();var builder = AppendJoin(" and ", datas);command.CommandText = $"select * from {table} where BINARY {builder};";Debug.Log(command.CommandText);foreach (var item in datas){command.Parameters.AddWithValue($"@{item.key}", item.value);}return ExecuteReader(command);}public static int InsertInto(string table, params MysqlData[] datas){MySqlCommand command = new MySqlCommand();var builder = AppendJoin(",", datas);command.CommandText = $"insert into {table} set {builder};";Debug.Log(command.CommandText);foreach (var item in datas){command.Parameters.AddWithValue($"@{item.key}", item.value);}return ExecuteNonQuery(command);}public static int Update(string table, MysqlData[] updateDatas, params MysqlData[] whereDatas){List<string> updateStrList = new List<string>();foreach (var item in updateDatas){updateStrList.Add($"{item.key}=@1{item.key}");}var updateStr = AppendJoin(",", updateStrList);List<string> whereStrList = new List<string>();foreach (var item in whereDatas){whereStrList.Add($"{item.key}=@2{item.key}");}var whereStr = AppendJoin(" and ", whereStrList);MySqlCommand command = new MySqlCommand();command.CommandText = $"update {table} set {updateStr} where {whereStr};";Debug.Log(command.CommandText);foreach (var item in updateDatas){command.Parameters.AddWithValue($"@1{item.key}", item.value);}foreach (var item in whereDatas){command.Parameters.AddWithValue($"@2{item.key}", item.value);}return ExecuteNonQuery(command);}public static int Delete(string table, params MysqlData[] datas){MySqlCommand command = new MySqlCommand();var builder = AppendJoin(" and ", datas);command.CommandText = $"delete from {table} where {builder};";Debug.Log(command.CommandText);foreach (var item in datas){command.Parameters.AddWithValue($"@{item.key}", item.value);}return ExecuteNonQuery(command);}private static DataTable ExecuteReader(MySqlCommand command){connection.Open();command.Connection = connection;MySqlDataAdapter dataAdapter = new MySqlDataAdapter(command);DataTable table = new DataTable();dataAdapter.Fill(table);connection.Close();return table;}private static int ExecuteNonQuery(MySqlCommand command){connection.Open();command.Connection = connection;MySqlDataAdapter dataAdapter = new MySqlDataAdapter(command);var rowNum = command.ExecuteNonQuery();connection.Close();return rowNum;}private static string AppendJoin<T>(string separator, List<T> values){string str = "";for (int i = 0; i < values.Count; i++){if (i == values.Count - 1){str += values[i];}else{str += values[i] + separator;}}return str;}private static string AppendJoin(string separator, params object[] values){string str = "";for (int i = 0; i < values.Length; i++){if (i == values.Length - 1){str += values[i];}else{str += values[i] + separator;}}return str;}}
}namespace CSharpMysql
{public class MysqlData{public string key { get; private set; }public object value { get; private set; }public MysqlData(string key, object value){this.key = key;this.value = value;}public override string ToString(){return $"{key}=@{key}";}}
}
namespace CSharpMysql
{public class MySqlConnectString{public string server = "127.0.0.1";public int port = 3306;public string user = "root";public string password = "root";public string database = "test";public override string ToString(){return $"server={server};user={user};database={database};port={port};password={password}";}public static MySqlConnectString New(){return new MySqlConnectString();}}
}

Unity连接Mysql数据库相关推荐

  1. 关于unity连接MySQL数据库做一个简单的登陆注册系统

    这段时间为了大作业,作为一个菜鸟研究了好久的Unity连接数据库,那就整理一下然后写下来当作记录吧. 首先,unity连接MySQL要先在Assets板上创建pluging文件夹再导入一些必要的dll ...

  2. Unity2020连接MySQL数据库

    重新梳理一下这篇帖子,并且就后续的一些问题提供一些思路与见解. 本文章涉及Unity 3D版本:2020.3.20f1.MySQL5.7.(经过亲测,2019-2022均适用) 1.作为初学者时期,发 ...

  3. U3D连接MySQL数据库详细步骤解析

    本文转自博主Hozshan的文章 "Unity3D 学习笔记(四) Unity连接MySQL数据库",他对各个步骤都做了详细的介绍. 文章链接:https://blog.csdn. ...

  4. 【Unity3D】Unity 3D 连接 MySQL 数据库

    1.Navicat准备 test 数据库,并在test数据库下创建 user 数据表,预先插入测试数据. 2.启动 Unity Hub 新建一个项目,然后在Unity编辑器的 Project视图 中, ...

  5. .net连接mysql数据_.net连接MYSQL数据库的方法及示例!

    连接MYSQL数据库的方法及示例 方法一: 使用MYSQL推出的MySQL Connector/Net is an ADO.NET driver for MySQL 该组件为MYSQL为ADO.NET ...

  6. JDBC连接MySQL数据库及演示样例

    JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识         JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...

  7. python用django连接mysql_三分钟了解Django如何连接Mysql数据库

    处理用户注册请求.Django连接MysqL数据库相关配置.数据库迁移命令: my_Dproject/app01/views.py    在views函数文件中添加register函数,来处理用户注册 ...

  8. eclipselink mysql_Eclipse连接MySQL数据库(傻瓜篇)

    Eclipse连接MySQL数据库(傻瓜篇) 本来不想写这么简单人文章,在百度上搜索我这个标题,完全符合标题的一大堆.但我按照那些文章捣鼓了很久,就是不行. 我的环境:MySQL:mysql-esse ...

  9. Linux JSP连接MySQL数据库

    Linux(Ubuntu平台)JSP通过JDBC连接MySQL数据库,与Windows平台类似,步骤如下: 下载 jdbc: mysql-connector-java-5.1.18.tar.gz 解压 ...

最新文章

  1. 通过tinyxml解析百度热词榜单
  2. minhash pyspark 源码分析——hash join table是关键
  3. python中的进程
  4. Docker 入门到实践笔记1
  5. 具备自动刷新功能的 SAP ABAP ALV 报表
  6. MATLAB字符转数据
  7. java请求接口示例_用示例解释Java接口
  8. 【转】深入理解Windows消息机制
  9. vue入门:(组件)
  10. IQA+不懂︱图像清洗:图像质量评估(评估指标、传统检测方法)
  11. 清除windows的EFS加密
  12. HTML特殊字符符号大全
  13. 微信网页授权 Vue
  14. Ubuntu设置Adsl上网
  15. 人生就是个学习、思考与实践的过程
  16. yum 源没有php7.0,yum安装最新版php7的操作方法
  17. 24_摘录的一些精彩语句1
  18. AM335x 如何修改phy及双网络使用说明(精华!!!)
  19. EasyUI的datagrid删除后一页所有数据不自动显示前页数据
  20. Word2016 显示批注

热门文章

  1. 解密压缩包文件的打开密码
  2. zipline中benchmarks.py源码分析
  3. Python实现将列表按比例和数量拆分成子列表
  4. 一文彻底搞懂 DvaJS 原理
  5. 【人工智能】AGI 通用人工智能基础概念、实现原理、挑战和发展前景
  6. 同济计计算机研究生宿舍,我想请问一下同济大学研究生宿舍的情况
  7. crt计算机显示器,CRT显示器是什么
  8. 【图像分割】基于matlab Kmean聚类分水岭、oust、粒子群算法优化脂肪肝图像分割【含Matlab源码 2277期】
  9. HTML中的乱码问题
  10. 校验银行卡是否有效, 获取所属行, 校验预留信息