Unity3D连接本地或局域网MySQL数据库
准备工作:
1、打开 Unity3D 安装目录,到这个路径下 Editor > Data > Mono > lib > mono > 2.0 拷贝出下图的五个动态链接库,放到 Unity3D 工程目录下 Assets/Plugins 文件夹中。这里我想重点说一下,在使用过程中这五个动态链接库需要与 Unity3D 版本匹配,也就是说你不要在 Uniyt3D 5.3 版本拷贝出来,拿去 Uniyt3D 5.4 版本中使用,这是有可能出问题的,最好是在自己的 Unity3D 安装目录下去拷贝。I18N.CJK.dll 这个链接库,如果是 PC 端连接数据库可以不需要,如果是移动端连接数据库就必须要。
2、网上下载一个 MySql.Data.dll 动态链接库,也放到 Unity3D 工程目录下 Assets/Plugins 文件夹中。
using MySql.Data.MySqlClient;2 using System;3 using System.Data;4 5 public class MySqlAccess6 {7 public static MySqlConnection mySqlConnection;//连接类对象8 9 private static string host; //IP地址。如果只是在本地的话,写localhost就可以。10 private static string id; //用户名。11 private static string pwd; //密码。12 private static string dataBase; //数据库名称。13 14 /// <summary>15 /// 构造方法16 /// </summary>17 /// <param name="_host">IP地址</param>18 /// <param name="_id">用户名</param>19 /// <param name="_pwd">密码</param>20 /// <param name="_dataBase">数据库名称</param>21 public MySqlAccess(string _host, string _id, string _pwd, string _dataBase)22 {23 host = _host;24 id = _id;25 pwd = _pwd;26 dataBase = _dataBase;27 OpenSql();28 }29 30 /// <summary> 31 /// 打开数据库 32 /// </summary> 33 public static void OpenSql()34 {35 try36 {37 //string.Format是将指定的 String类型的数据中的每个格式项替换为相应对象的值的文本等效项。 38 string mySqlString = string.Format("Database={0};Data Source={1};User Id={2};Password={3};", dataBase, host, id, pwd, "3306");39 mySqlConnection = new MySqlConnection(mySqlString);40 mySqlConnection.Open();41 }42 catch (Exception e)43 {44 throw new Exception("服务器连接失败,请重新检查是否打开MySql服务。" + e.Message.ToString());45 }46 }47 48 /// <summary> 49 /// 创建表 50 /// </summary> 51 /// <param name="name">表名</param> 52 /// <param name="colName">属性列</param> 53 /// <param name="colType">属性类型</param> 54 /// <returns></returns> 55 public DataSet CreateTable(string name, string[] colName, string[] colType)56 {57 if (colName.Length != colType.Length)58 {59 throw new Exception("输入不正确:" + "columns.Length != colType.Length");60 }61 string query = "CREATE TABLE " + name + "(" + colName[0] + " " + colType[0];62 for (int i = 1; i < colName.Length; i++)63 {64 query += "," + colName[i] + " " + colType[i];65 }66 query += ")";67 return QuerySet(query);68 }69 70 /// <summary> 71 /// 创建具有id自增的表 72 /// </summary> 73 /// <param name="name">表名</param> 74 /// <param name="col">属性列</param> 75 /// <param name="colType">属性列类型</param> 76 /// <returns></returns> 77 public DataSet CreateTableAutoID(string name, string[] col, string[] colType)78 {79 if (col.Length != colType.Length)80 {81 throw new Exception("columns.Length != colType.Length");82 }83 string query = "CREATE TABLE " + name + " (" + col[0] + " " + colType[0] + " NOT NULL AUTO_INCREMENT";84 for (int i = 1; i < col.Length; ++i)85 {86 query += ", " + col[i] + " " + colType[i];87 }88 query += ", PRIMARY KEY (" + col[0] + ")" + ")";89 return QuerySet(query);90 }91 92 /// <summary> 93 /// 插入一条数据,包括所有,不适用自动累加ID。 94 /// </summary> 95 /// <param name="tableName">表名</param> 96 /// <param name="values">插入值</param> 97 /// <returns></returns> 98 public DataSet InsertInto(string tableName, string[] values)99 {
100 string query = "INSERT INTO " + tableName + " VALUES (" + "'" + values[0] + "'";
101 for (int i = 1; i < values.Length; ++i)
102 {
103 query += ", " + "'" + values[i] + "'";
104 }
105 query += ")";
106 return QuerySet(query);
107 }
108
109 /// <summary>
110 /// 插入部分ID
111 /// </summary>
112 /// <param name="tableName">表名</param>
113 /// <param name="col">属性列</param>
114 /// <param name="values">属性值</param>
115 /// <returns></returns>
116 public DataSet InsertInto(string tableName, string[] col, string[] values)
117 {
118 if (col.Length != values.Length)
119 {
120 throw new Exception("columns.Length != colType.Length");
121 }
122 string query = "INSERT INTO " + tableName + " (" + col[0];
123 for (int i = 1; i < col.Length; ++i)
124 {
125 query += ", " + col[i];
126 }
127 query += ") VALUES (" + "'" + values[0] + "'";
128 for (int i = 1; i < values.Length; ++i)
129 {
130 query += ", " + "'" + values[i] + "'";
131 }
132 query += ")";
133 return QuerySet(query);
134 }
135
136 /// <summary>
137 /// 查询表数据
138 /// </summary>
139 /// <param name="tableName">表名</param>
140 /// <param name="items">需要查询的列</param>
141 /// <param name="whereColName">查询的条件列</param>
142 /// <param name="operation">条件操作符</param>
143 /// <param name="value">条件的值</param>
144 /// <returns></returns>
145 public DataSet Select(string tableName, string[] items, string[] whereColName, string[] operation, string[] value)
146 {
147 if (whereColName.Length != operation.Length || operation.Length != value.Length)
148 {
149 throw new Exception("输入不正确:" + "col.Length != operation.Length != values.Length");
150 }
151 string query = "SELECT " + items[0];
152 for (int i = 1; i < items.Length; i++)
153 {
154 query += "," + items[i];
155 }
156 query += " FROM " + tableName + " WHERE " + " " + whereColName[0] + operation[0] + " '" + value[0] + "'";
157 for (int i = 1; i < whereColName.Length; i++)
158 {
159 query += " AND " + whereColName[i] + operation[i] + "' " + value[i] + "'";
160 }
161 return QuerySet(query);
162 }
163
164 /// <summary>
165 /// 更新表数据
166 /// </summary>
167 /// <param name="tableName">表名</param>
168 /// <param name="cols">更新列</param>
169 /// <param name="colsvalues">更新的值</param>
170 /// <param name="selectkey">条件:列</param>
171 /// <param name="selectvalue">条件:值</param>
172 /// <returns></returns>
173 public DataSet UpdateInto(string tableName, string[] cols, string[] colsvalues, string selectkey, string selectvalue)
174 {
175 string query = "UPDATE " + tableName + " SET " + cols[0] + " = " + colsvalues[0];
176 for (int i = 1; i < colsvalues.Length; ++i)
177 {
178 query += ", " + cols[i] + " =" + colsvalues[i];
179 }
180 query += " WHERE " + selectkey + " = " + selectvalue + " ";
181 return QuerySet(query);
182 }
183
184 /// <summary>
185 /// 删除表数据
186 /// </summary>
187 /// <param name="tableName">表名</param>
188 /// <param name="cols">条件:删除列</param>
189 /// <param name="colsvalues">删除该列属性值所在得行</param>
190 /// <returns></returns>
191 public DataSet Delete(string tableName, string[] cols, string[] colsvalues)
192 {
193 string query = "DELETE FROM " + tableName + " WHERE " + cols[0] + " = " + colsvalues[0];
194 for (int i = 1; i < colsvalues.Length; ++i)
195 {
196 query += " or " + cols[i] + " = " + colsvalues[i];
197 }
198 return QuerySet(query);
199 }
200
201 /// <summary>
202 /// 释放
203 /// </summary>
204 public void Close()
205 {
206 if (mySqlConnection != null)
207 {
208 mySqlConnection.Close();
209 mySqlConnection.Dispose();
210 mySqlConnection = null;
211 }
212 }
213
214 /// <summary>
215 /// 执行Sql语句
216 /// </summary>
217 /// <param name="sqlString">sql语句</param>
218 /// <returns></returns>
219 public static DataSet QuerySet(string sqlString)
220 {
221 if (mySqlConnection.State == ConnectionState.Open)
222 {
223 DataSet ds = new DataSet();
224 try
225 {
226 MySqlDataAdapter mySqlDataAdapter = new MySqlDataAdapter(sqlString, mySqlConnection);
227 mySqlDataAdapter.Fill(ds);
228 }
229 catch (Exception e)
230 {
231 throw new Exception("SQL:" + sqlString + "/n" + e.Message.ToString());
232 }
233 finally
234 {
235 }
236 return ds;
237 }
238 return null;
239 }
240 }
接下来我们就可以访问数据库了1 using UnityEngine;2 using System.Data;3 4 public class Test : MonoBehaviour5 {6 private void Start()7 {8 MySqlAccess mySql = new MySqlAccess("localhost", "root", "root", "Test");9 mySql.CreateTableAutoID("tableTest", new string[] { "id", "name", "age" }, new string[] { "int", "text", "text" });
10 mySql.InsertInto("tableTest", new string[] { "name", "age" }, new string[] { "张三", "28" });
11 mySql.InsertInto("tableTest", new string[] { "name", "age" }, new string[] { "李四", "20" });
12 for (int i = 1; i < 3; i++)
13 {
14 DataSet ds = mySql.Select("tableTest", new string[] { "name", "age" }, new string[] { "id" }, new string[] { "=" }, new string[] { i.ToString() });
15 if (ds != null)
16 {
17 DataTable table = ds.Tables[0];
18 foreach (DataRow row in table.Rows)
19 {
20 foreach (DataColumn column in table.Columns)
21 {
22 Debug.Log(row[column]);
23 }
24 }
25 }
26 }
27 mySql.Close();
28 }
29 }
转载:https://www.cnblogs.com/xiaoyulong/p/8686886.html#4053314
Unity3D连接本地或局域网MySQL数据库相关推荐
- Unity3D研究院之Unity中连接本地或局域网MySQL数据库
用户名 Email 游戏蛮牛 手机端 开启辅助访问 腾讯QQ 立即注册 登录 用户名 自动登录 找回密码 密码 登录 注册帐号 [Unity5.X版本开始预售啦!] 扫一扫,访问微社区 </ ...
- mysql雨凇_Unity3D研究院之Unity中连接本地或局域网MySQL数据库(五十九) | 雨松MOMO程序研究院...
using UnityEngine; using System; using System.Data; using System.Collections; using MySql.Data.MySql ...
- 本地Python连接服务器中的Mysql数据库
1.Python中安装mysql驱动 1.1.Python下安装mysql驱动: pip installmysql-connector-python --allow-external mysql-co ...
- 万网mysql连接_[转载]如何远程连接万网的mysql数据库?
这两天忙着做v688.cn网站的产品设计,以及宣传彩页,可算是累坏了. 今天总算是在本地调整好网站了,正准备上传到服务器上,可是这时候问题就出现了! mysq数据库导入是个问题,而且是万网的,它里面自 ...
- 把本地电脑的mysql数据库迁移到服务器
要将本地计算机上的MySQL数据库迁移到服务器,您可以按照以下步骤进行操作: 1. 在服务器上安装MySQL/MariaDB:确保服务器上已安装MySQL/MariaDB数据库服务器.如果服务器上尚未 ...
- java连接sql server数据库的代码如何改成连接mysql_Java连接sql server或mysql数据库(代码)...
Java连接sql server或mysql数据库(代码) package Test; import java.sql.Connection; import java.sql.DriverManage ...
- 远程连接腾讯云MySQL数据库
远程连接腾讯云MySQL数据库 默认情况下,Centos系统的Mysql数据库是不允许被远程访问的 所以我们需要开启 输入mysql -uroot -p,使用Mysql 使用mysql数据库,Mysq ...
- 访问他人mysql数据库_怎么连接访问他人的MYSQL数据库?
1.访问别人的MYSQL方法: 找到MySQL配置文件,搜索"bind-address",找到这一行: bind-address=127.0.0.1在前面加一个#,注释掉这一行,保 ...
- 远程连接阿里云服务器MySQL数据库
为了远程连接阿里云服务器MySQL数据库,查找过许多资料,步骤大致都是这样的: 1.进入MySQL数据库,然后输入下面两条命令: grant all privileges on *.* to 'roo ...
- 远程连接服务端电脑mysql数据库
使用dbutil远程连接服务端电脑mysql数据库 -----来自网络 l 服务端电脑安装mysql l 服务端电脑安装mysql管理软件 并连接数据库,创建一个数据库和表 l 在客户端能够pi ...
最新文章
- base64的c语言实现方法
- python里读写excel等数据文件的6种常用方式
- 融合通信常见问题2月刊 | 云信小课堂
- mvn install时跳过Test
- mysql宽字节注入_转宽字节注入详解
- realme真我GT2系列节后登场:出厂自带realme UI 3.0正式版
- Spring Boot的学习之路(02):和你一起阅读Spring Boot官网
- [29期] 打仗、打球、打游戏、打代码。。。
- 如何评估语音质量好坏?
- 【遗传算法】基于改进的遗传和粒子群算法求解高斯烟羽模型气体扩散优化问题含Matlab源码
- 【IIOT】欧姆龙PLC数采之CP2E
- 转《营销活动及网络红包个税征免与税收策划》
- Springboot毕设项目房屋租赁系统4yvi2(java+VUE+Mybatis+Maven+Mysql)
- WPS中用mathtype插入公式的方法
- 手机usb口连接不上计算机,手机usb连不上电脑的原因及其处理方法
- 生态愿景与险企数字化进度——保险科技生态建设...
- 初中学历可以做原画师吗?原画师需要绘画基础吗
- 【基于TCP的在线词典】
- php sql多字段求和,JSP_sql实现多字段求和并查询,下面就sql多字段求和并作为sql - phpStudy...
- poj3426(网络流)
热门文章
- pandas按行、按列合并数据
- c#-winform自定义窗体皮肤(无边框皮肤)
- 大功率mos管怎么测量好坏,如何用万用表判断mos管的好坏?够全面!
- docker知识:docker update (更新参数)
- 解决Shiro+SpringBoot异步任务长时间运行导致的UnknownSessionException错误问题
- 计算机科学与技术高校毕业生要求,计算机科学与技术 毕业要求(2020)
- 财经管理中的计算机应用内容,财大 财经管理中的计算机应用
- Centos7之LVM(逻辑卷管理器)
- 用Todd Motto揭秘JavaScript
- 计算机9网络连接不上,本地连接连不上,教您电脑本地连接连不上怎么解决