【Unity3D】Unity 3D 连接 MySQL 数据库

该文章演示了如何在Unity中使用Navicat创建数据库和表,导入MySQL驱动并建立数据库连接。通过编写AccessMySQL脚本组件,实现了数据库的连接与SQL查询,最后在Unity编辑器控制台展示查询结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Navicat准备 test 数据库,并在test数据库下创建 user 数据表,预先插入测试数据。

2.启动 Unity Hub 新建一个项目,然后在Unity编辑器的 Project视图 中,右击新建一个 Plugins 文件夹将连接 MySQL的驱动包 导入(附加驱动包链接),之后Unity会自动引用它们。

3.在 Hierarchy视图 中点击 Main Camera 对象,然后在右边的 Inspector视图 中点击 Add Component,添加脚本组件,名称如下。

4.AccessMySQL脚本组件连接数据库和执行SQL语句代码如下

...//your code
    //MySQL 连接对象
    public static MySqlConnection dbConnection;
    //连接或关闭 MySQL数据库
    public void ConnectMySQL(string connectionStr,bool isOpen){
        if(isOpen){
            try{
                dbConnection = new MySqlConnection(connectionStr);
                dbConnection.Open();
                Debug.Log("连接MySQL数据库成功");
            }catch(System.Exception e){
                throw new System.Exception("连接MySQL数据库失败:"+e.Message.ToString());
            }
        }else{
            if(dbConnection != null){
                dbConnection.Close();
                dbConnection.Dispose();
                dbConnection = null;
            }
        }
    }

    //SQL语句执行方法
    public  DataSet ExecuteQuery(string sqlStr,MySqlConnection ConnectionDB){
        if(dbConnection.State == ConnectionState.Open){
            //表的集合
            DataSet dataSet = new DataSet();
            try{
                MySqlDataAdapter data = new MySqlDataAdapter(sqlStr,ConnectionDB);
                data.Fill(dataSet);
            }catch(System.Exception e){
                throw new System.Exception("SQL:"+sqlStr+"/n"+e.Message.ToString());
            }
            return dataSet;
        }
        return null;
    }

    // Start is called before the first frame update
    void Start()
    {
        string connectionStr = "Server = 127.0.0.1;port=3306;DataBase=test;UID=root;Pwd=1008";
        ConnectMySQL(connectionStr,true);

        string sqlQuery = "select * from user";
        DataSet ds = ExecuteQuery(sqlQuery,dbConnection);
        // Debug.Log("检索到:"+ds.Tables[0].Rows.Count+" 条数据");
        for(int i = 0;i<ds.Tables[0].Rows.Count;i++){
           Debug.Log("姓名:"+ ds.Tables[0].Rows[i]["name"] + " 年龄:"+ds.Tables[0].Rows[i]["age"]);
        }
    }
...//your code

5.Unity编辑器的控制台显示执行效果,代码正常,运行成功!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拉伊卜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值