Unity连接Mysql数据库
下载对应版本的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数据库相关推荐
- 关于unity连接MySQL数据库做一个简单的登陆注册系统
这段时间为了大作业,作为一个菜鸟研究了好久的Unity连接数据库,那就整理一下然后写下来当作记录吧. 首先,unity连接MySQL要先在Assets板上创建pluging文件夹再导入一些必要的dll ...
- Unity2020连接MySQL数据库
重新梳理一下这篇帖子,并且就后续的一些问题提供一些思路与见解. 本文章涉及Unity 3D版本:2020.3.20f1.MySQL5.7.(经过亲测,2019-2022均适用) 1.作为初学者时期,发 ...
- U3D连接MySQL数据库详细步骤解析
本文转自博主Hozshan的文章 "Unity3D 学习笔记(四) Unity连接MySQL数据库",他对各个步骤都做了详细的介绍. 文章链接:https://blog.csdn. ...
- 【Unity3D】Unity 3D 连接 MySQL 数据库
1.Navicat准备 test 数据库,并在test数据库下创建 user 数据表,预先插入测试数据. 2.启动 Unity Hub 新建一个项目,然后在Unity编辑器的 Project视图 中, ...
- .net连接mysql数据_.net连接MYSQL数据库的方法及示例!
连接MYSQL数据库的方法及示例 方法一: 使用MYSQL推出的MySQL Connector/Net is an ADO.NET driver for MySQL 该组件为MYSQL为ADO.NET ...
- JDBC连接MySQL数据库及演示样例
JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...
- python用django连接mysql_三分钟了解Django如何连接Mysql数据库
处理用户注册请求.Django连接MysqL数据库相关配置.数据库迁移命令: my_Dproject/app01/views.py 在views函数文件中添加register函数,来处理用户注册 ...
- eclipselink mysql_Eclipse连接MySQL数据库(傻瓜篇)
Eclipse连接MySQL数据库(傻瓜篇) 本来不想写这么简单人文章,在百度上搜索我这个标题,完全符合标题的一大堆.但我按照那些文章捣鼓了很久,就是不行. 我的环境:MySQL:mysql-esse ...
- Linux JSP连接MySQL数据库
Linux(Ubuntu平台)JSP通过JDBC连接MySQL数据库,与Windows平台类似,步骤如下: 下载 jdbc: mysql-connector-java-5.1.18.tar.gz 解压 ...
最新文章
- 通过tinyxml解析百度热词榜单
- minhash pyspark 源码分析——hash join table是关键
- python中的进程
- Docker 入门到实践笔记1
- 具备自动刷新功能的 SAP ABAP ALV 报表
- MATLAB字符转数据
- java请求接口示例_用示例解释Java接口
- 【转】深入理解Windows消息机制
- vue入门:(组件)
- IQA+不懂︱图像清洗:图像质量评估(评估指标、传统检测方法)
- 清除windows的EFS加密
- HTML特殊字符符号大全
- 微信网页授权 Vue
- Ubuntu设置Adsl上网
- 人生就是个学习、思考与实践的过程
- yum 源没有php7.0,yum安装最新版php7的操作方法
- 24_摘录的一些精彩语句1
- AM335x 如何修改phy及双网络使用说明(精华!!!)
- EasyUI的datagrid删除后一页所有数据不自动显示前页数据
- Word2016 显示批注