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

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


1.首先安装MySQL

我安装的是mysql-installer-community-5.5.28.3.exe (可以访问http://www.mysql.com/downloads/mysql/免费下载)

安装成功后,运行cmd,打开\\%安装根目录%\\MySQL\MySQL Server 5.5\bin,输入指令mysql -u root -p


root为用户名,输入密码后输入show databases;查看。


2.创建数据库

使用MySQL提供的MySQL Workbench工具建立一个简单的数据库myscoresdb,然后创建一个数据表并命名为HIscores,添加3条数据,分别为id,name和score用来保存用户名和得分,其中主键为id,这个过程比较简单,不细说。


3.导入DLL文件

这是解决我的困扰的重要步骤。

①打开Unity的安装目录,\\%安装根目录%\\Editor\Data\Mono\lib\mono\2.0\中,将System.Data.dll和System.Drawing.dll拷贝到Unity工程目录下Assets文件中。


②打开MySQL的安装目录,\\%安装根目录%\\Connector NET 6.5.4\Assemblies\v2.0中,将MySql.Data.dll拷贝到Unity工程目录下Assets文件中。


使用哪个文件夹下的MySql.Data.dll要看具体需要,之前我选择的是v4下的MySql.Data.dll,结果一下提示MissingMethodException: Method not found: ‘System.Threading.Monitor.Enter’.


4.创建连接MySQL脚本。

在Unity项目中创建c#脚本,使用Visual Studio 2010编辑该脚本。

首先添加3个dll的引用:项目->添加引用->浏览,将3个dll顺利添加。


然后编写连接脚本。

[csharp] view plain copy
print ?
  1. using UnityEngine;  
  2. using System;  
  3. using System.Collections;  
  4.   
  5. using System.Data;  
  6. using MySql.Data.MySqlClient;  
  7.   
  8.   
  9. public class Test : MonoBehaviour  
  10. {  
  11.     void Start()  
  12.     {  
  13.         string constr = “server=localhost;Database=myscoresdb;User Id=root;password=1111”;  
  14.         //建立连接的语句  
  15.         //如果是本地数据库server为localhost,不是则输入server的地址  
  16.         MySqlConnection mycon = new MySqlConnection(constr); //建立连接  
  17.         mycon.Open();  
  18.           
  19.         //插入的指令  
  20.         MySqlCommand mycmd = new MySqlCommand(“insert into hiscores(id,name,score) values(4,’lisi’,98)”, mycon);  
  21.         if (mycmd.ExecuteNonQuery() > 0)  
  22.             Debug.Log(”Insert success!”);  
  23.   
  24.         //查询指令  
  25.         string selstr = “select * from hiscores”;  
  26.         MySqlCommand myselect = new MySqlCommand(selstr, mycon);  
  27.         DataSet ds = new DataSet();  
  28.         try  
  29.         {  
  30.             MySqlDataAdapter da = new MySqlDataAdapter(selstr, mycon);  
  31.             da.Fill(ds);  
  32.             Debug.Log(”Query success!”);  
  33.             print(ds.Tables[0].Rows[0][0]);  
  34.         }  
  35.         catch (Exception ee)  
  36.         {  
  37.             throw new Exception(“SQL: ” + selstr + “\n” + ee.Message.ToString());  
  38.         }  
  39.   
  40.         mycon.Close(); //关闭连接  
  41.     }  
  42. }  
 
   
保存脚本,在Unity中将测试脚本关联到摄像机并测试。



如果还是不能连接数据库,则可以启动TCP/IP协议再次尝试一下。



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


1.首先安装MySQL

我安装的是mysql-installer-community-5.5.28.3.exe (可以访问http://www.mysql.com/downloads/mysql/免费下载)

安装成功后,运行cmd,打开\\%安装根目录%\\MySQL\MySQL Server 5.5\bin,输入指令mysql -u root -p


root为用户名,输入密码后输入show databases;查看。


2.创建数据库

使用MySQL提供的MySQL Workbench工具建立一个简单的数据库myscoresdb,然后创建一个数据表并命名为HIscores,添加3条数据,分别为id,name和score用来保存用户名和得分,其中主键为id,这个过程比较简单,不细说。


3.导入DLL文件

这是解决我的困扰的重要步骤。

①打开Unity的安装目录,\\%安装根目录%\\Editor\Data\Mono\lib\mono\2.0\中,将System.Data.dll和System.Drawing.dll拷贝到Unity工程目录下Assets文件中。


②打开MySQL的安装目录,\\%安装根目录%\\Connector NET 6.5.4\Assemblies\v2.0中,将MySql.Data.dll拷贝到Unity工程目录下Assets文件中。


使用哪个文件夹下的MySql.Data.dll要看具体需要,之前我选择的是v4下的MySql.Data.dll,结果一下提示MissingMethodException: Method not found: ‘System.Threading.Monitor.Enter’.


4.创建连接MySQL脚本。

在Unity项目中创建c#脚本,使用Visual Studio 2010编辑该脚本。

首先添加3个dll的引用:项目->添加引用->浏览,将3个dll顺利添加。


然后编写连接脚本。

[csharp] view plain copy
print ?
  1. using UnityEngine;  
  2. using System;  
  3. using System.Collections;  
  4.   
  5. using System.Data;  
  6. using MySql.Data.MySqlClient;  
  7.   
  8.   
  9. public class Test : MonoBehaviour  
  10. {  
  11.     void Start()  
  12.     {  
  13.         string constr = “server=localhost;Database=myscoresdb;User Id=root;password=1111”;  
  14.         //建立连接的语句  
  15.         //如果是本地数据库server为localhost,不是则输入server的地址  
  16.         MySqlConnection mycon = new MySqlConnection(constr); //建立连接  
  17.         mycon.Open();  
  18.           
  19.         //插入的指令  
  20.         MySqlCommand mycmd = new MySqlCommand(“insert into hiscores(id,name,score) values(4,’lisi’,98)”, mycon);  
  21.         if (mycmd.ExecuteNonQuery() > 0)  
  22.             Debug.Log(”Insert success!”);  
  23.   
  24.         //查询指令  
  25.         string selstr = “select * from hiscores”;  
  26.         MySqlCommand myselect = new MySqlCommand(selstr, mycon);  
  27.         DataSet ds = new DataSet();  
  28.         try  
  29.         {  
  30.             MySqlDataAdapter da = new MySqlDataAdapter(selstr, mycon);  
  31.             da.Fill(ds);  
  32.             Debug.Log(”Query success!”);  
  33.             print(ds.Tables[0].Rows[0][0]);  
  34.         }  
  35.         catch (Exception ee)  
  36.         {  
  37.             throw new Exception(“SQL: ” + selstr + “\n” + ee.Message.ToString());  
  38.         }  
  39.   
  40.         mycon.Close(); //关闭连接  
  41.     }  
  42. }  
 
 
保存脚本,在Unity中将测试脚本关联到摄像机并测试。



如果还是不能连接数据库,则可以启动TCP/IP协议再次尝试一下。



猜你喜欢

转载自blog.csdn.net/s1314_jhc/article/details/80803417