unity连接mysql的教程
今天在网上学习了有关Unity连接MySQL数据库的方法,下面直接给出代码:
using UnityEngine;
using System;
using System.Collections;
using System.Data;
using MySql.Data.MySqlClient;
public class CMySql : MonoBehaviour {
// 全局变量
private static MySqlConnection dbConnection;
static string host = "192.168.1.100";
static string id = "蛮牛教育";
static string pwd = "123456";
static string result = "";
void OnGUI()
{
host = GUILayout.TextField(host, 200, GUILayout.Width(200));
id = GUILayout.TextField(id, 200, GUILayout.Width(200));
pwd = GUILayout.TextField(pwd, 200, GUILayout.Width(200));
if (GUILayout.Button("Test"))
{
string connectionString = "Server=" + host + ";Database=test;User ID=" + id + ";Password=" + pwd + ";Pooling=false";
openSqlConnection(connectionString);
}
GUILayout.Label(result);
}
// 应用程序退出时调用
public static void OnApplicationQuit() {
closeSqlConnection();
}
// 连接到数据库
private static void openSqlConnection(string connectionString) {
dbConnection = new MySqlConnection(connectionString);
dbConnection.Open();
result = dbConnection.ServerVersion;
Debug.Log("Connected to database." + result);
}
// 断开与数据库的连接
private static void closeSqlConnection() {
dbConnection.Close();
dbConnection = null;
//Debug.Log("Disconnected from database." + result);
}
// 执行MySQL查询
public static void doQuery(string sqlQuery) {
IDbCommand dbCommand = dbConnection.CreateCommand();
dbCommand.CommandText = sqlQuery;
IDataReader reader = dbCommand.ExecuteReader();
reader.Close();
reader = null;
dbCommand.Dispose();
dbCommand = null;
}
}
代码解释
1. 命名空间引用
using UnityEngine;
using System;
using System.Collections;
using System.Data;
using MySql.Data.MySqlClient;
这些命名空间提供了Unity开发、基本系统功能、集合操作、数据访问以及MySQL数据库连接所需的类和方法。
2. 全局变量
private static MySqlConnection dbConnection;
static string host = "192.168.1.100";
static string id = "蛮牛教育";
static string pwd = "123456";
static string result = "";
- dbConnection:用于存储MySQL数据库连接对象。
- host:数据库服务器的地址。
- id:数据库的用户名。
- pwd:数据库的密码。
- result:用于存储数据库操作的结果信息。
3. OnGUI 方法
void OnGUI()
{
host = GUILayout.TextField(host, 200, GUILayout.Width(200));
id = GUILayout.TextField(id, 200, GUILayout.Width(200));
pwd = GUILayout.TextField(pwd, 200, GUILayout.Width(200));
if (GUILayout.Button("Test"))
{
string connectionString = "Server=" + host + ";Database=test;User ID=" + id + ";Password=" + pwd + ";Pooling=false";
openSqlConnection(connectionString);
}
GUILayout.Label(result);
}
- 该方法用于在Unity的GUI界面上显示输入框和按钮。
- 用户可以在输入框中修改数据库连接的主机地址、用户名和密码。
- 点击“Test”按钮时,会根据输入的信息生成连接字符串,并调用 openSqlConnection方法尝试连接数据库。
- 最后在界面上显示数据库操作的结果信息。
4. OnApplicationQuit 方法
public static void OnApplicationQuit() {
closeSqlConnection();
}
当应用程序退出时,调用 closeSqlConnection 方法断开与数据库的连接。
5. openSqlConnection 方法
private static void openSqlConnection(string connectionString) {
dbConnection = new MySqlConnection(connectionString);
dbConnection.Open();
result = dbConnection.ServerVersion;
Debug.Log("Connected to database." + result);
}
- 根据传入的连接字符串创建一个 MySqlConnection对象。
- 调用 Open方法打开数据库连接。
- 获取数据库服务器的版本信息并存储在 result变量中。
- 在控制台输出连接成功的信息。
6. closeSqlConnection 方法
private static void closeSqlConnection() {
dbConnection.Close();
dbConnection = null;
//Debug.Log("Disconnected from database." + result);
}
- 调用 Close方法关闭数据库连接。
- 将 dbConnection对象置为null,释放资源。
7. doQuery 方法
public static void doQuery(string sqlQuery) {
IDbCommand dbCommand = dbConnection.CreateCommand();
dbCommand.CommandText = sqlQuery;
IDataReader reader = dbCommand.ExecuteReader();
reader.Close();
reader = null;
dbCommand.Dispose();
dbCommand = null;
}
- 根据数据库连接对象创建一个 IDbCommand对象。
- 设置要执行的SQL查询语句。
- 执行查询并获取结果集。
- 关闭结果集并释放资源。
- 释放 IDbCommand对象的资源。
通过以上代码,你可以在Unity中实现与MySQL数据库的连接和基本操作。在实际使用时,需要确保已经正确安装了MySQL数据库,并且在Unity项目中引用了 MySql.Data 命名空间对应的库文件。同时,要注意数据库的安全性,避免将敏感信息硬编码在代码中。
