unity用mysql实现装备_Unity 使用数据库(MySql)

Connection:它是建立应用程序与数据库之间的连接通道,起到连接数据库的功能。其访问形式根据数据库的类型而定。以MySQL为例,则连接类型为MySqlConnection。这种连接需要引入相应数据库的命名空间,这里我们需要引入System.Data.MySqlClient。想要引入这个命名空间还需要System.Data.dll文件,就在Unity安装源目录下即可找到,复制导入Unity的Asset即可。

using UnityEngine;

using System.Data;  //注意引用命名空间

using MySql.Data.MySqlClient;

public class OpenSql : MonoBehaviour {

//数据库名称

private string dataname = "czhenya01";

//数据库Ip地址

private string ipAddress = "127.0.0.1";

//用户名

private string root = "root";

//密码

private string paw = "123456";

//创建数据库

MySqlConnection mySq1Con ;

// Use this for initialization

void Start () {

//此字符串是自己的本地数据库信息

connectionStr = string.Format("Server={0};Database={1};User ID={2};Password={3}",ipAddress,dataname,root,paw);

Debug.Log(connectionStr);

//根据传入字符串,实例化自己的数据库

mySq1Con = new MySqlConnection(connectionStr);

}

void OnGUI()

{

//打开数据库

if (GUILayout.Button("OpenMySql"))

{

if (mySq1Con != null)

{

mySq1Con.Open();

Debug.Log("打开数据库成功");

}

}

Command :当应用程序建立与数据源的连接后,就需要Command对象来执行命令并从数据源中返回结果,,,它是一个数据命令对象,主要功能就是想数据库发送查询,更新,删除,修改,操作SQL语句,这边需要键下它执行SQL的几种方法:ExcuteNonQuwry(),该方法是返回受影响的行数可用于统计(数据库的增删改查都在这里面完成)。

代码实现:(代码放在上面的ONGUI()里面)

//输入查询语句点击并查询

string cmdInp = "insert into czhenya001 values(2000,'chenzy',14,'男')";

if (GUILayout.Button("SelectMySql"))

{

//创建操作数据库的实例(参数是查询语句,数据库)

MySqlCommand command = new MySqlCommand(cmdInp, mySq1Con);

if (command != null)

{

//返回的是该语句影响的数据库的行数

int i = command.ExecuteNonQuery();

Debug.Log(i);

}

}

注:上面的查询语句是写成字符串,作为参数传递到函数里面的,,是不区分大小写的,只要格式和单词拼写正确即可,,,

ExecuteReader(),返回一个MySqlDataReader对象,可进行数据的读取,实现代码如下:

(代码放在上面的ONGUI()里面)

//显示查询到的信息

string cmdSel = "select * from czhenya001";

if (GUILayout.Button("SelMySql"))

{

//创建操作数据库的实例(参数是查询语句,数据库)

MySqlCommand command = new MySqlCommand(cmdSel, mySq1Con);

if (command != null)

{

MySqlDataReader msdr = command.ExecuteReader();

while (msdr.Read())

{

//输出第1,2列信息,,,

Debug.Log(msdr[0].ToString()+"\t"+msdr[1].ToString());

}

command.Dispose(); //释放内存

}

}

DataAdapter:数据适配器,是DataSet与数据源之间的桥梁,它有两种工作方式:一种数是通过Command对象执行SQL语句,从数据源中检索数据,并将检索到的数据填充到DataSet对象,还有一种事把DataSet对象所做的更改写入数据源,,,点击查看vs中DataAdaper使用实例

DataSet:其实上面已经用到了这个对象,他是整个体系的核心,其数据来源于数据库或者XML,为了从数据库中获取数据,需要使用数据适配器从数据中查询数据。

点击查看VS中DataSet实例

你也可以是是试着做个输入框来更改SQL语句,简易效果图如下:

e717c8324912c7e03394e64f3566d116.png

作者:Czhenya

链接:https://czhenya.blog.csdn.net/article/details/78022674

来源:CSDN

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity中连接MySQL数据库时,如果出现"caching_sha2_password"的提示,这是因为MySQL 8.0版本引入了新的身份验证插件"caching_sha2_password",而Unity默认使用的是旧的身份验证插件"mysql_native_password"。为了解决这个问题,你可以按照以下步骤进行操作: 1. 在Unity中安装MySQL Connector/NET。你可以从MySQL官方网站下载并安装最新版本的Connector/NET。 2. 在Unity项目中创建一个C#脚本,用于连接MySQL数据库。 3. 在脚本中使用以下代码进行数据库连接: ```csharp using System.Data; using MySql.Data.MySqlClient; public class DatabaseConnector : MonoBehaviour { private MySqlConnection connection; private string server = "your_server_address"; private string database = "your_database_name"; private string uid = "your_username"; private string password = "your_password"; void Start() { string connectionString = "Server=" + server + ";Database=" + database + ";Uid=" + uid + ";Pwd=" + password + ";SslMode=none;"; connection = new MySqlConnection(connectionString); try { connection.Open(); Debug.Log("Connected to MySQL database!"); } catch (MySqlException ex) { Debug.LogError("Failed to connect to MySQL database: " + ex.Message); } } void OnApplicationQuit() { if (connection != null && connection.State != ConnectionState.Closed) { connection.Close(); Debug.Log("Disconnected from MySQL database!"); } } } ``` 请确保将"your_server_address"替换为你的MySQL服务器地址,"your_database_name"替换为你的数据库名称,"your_username"替换为你的数据库用户名,"your_password"替换为你的数据库密码。 这样,你就可以在Unity中连接MySQL数据库了。如果仍然遇到"caching_sha2_password"的提示,请确保你使用的是最新版本的Connector/NET,并且MySQL服务器已正确配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值