当前位置: 首页 > article >正文

记录:Unity脚本的编写7.0

目录

  • 连接数据库
  • 编写脚本
    • 查看效果

有段时间没有更新了,现在有点空,就继续写一下unity的脚本,这次就来写一下关于unity连接数据库的内容

连接数据库

无论是什么语言与应用场景,总有一项东西是绕不开的,那就是数据库(各种意义上),毕竟永远是在和数据打交道(笑),而unity也不例外,不论是登录还是存储游戏数据,数据库的影子无处不子,在这里我们就浅连接一下数据库,进行基础的增删改查工作
当然,下载mysql和可视化软件(如navicat)之类的工作在此就不做赘述,可以通过其他方式自行下载,这里只关注如何连接与简单的操作
注意:在连接数据库的时候注意各种软件的版本,版本不对应就无法生效,很多问题都是这样产生的,而且基本无法通过除了重新安装意外的方式解决,请读者主意,笔者在此使用的是5.7版本mysql
那么就正式开始

像java的导入jar包一样,unity也有自己的方式搭建与mysql连接的地基,导入sql连接文件
先在unity中创建一个文件夹
在这里插入图片描述
导入文件(文件已上传,不行了再用网盘之类的存一下)
注意甄别版本,笔者的unity为2022版,mysql为5.7,需要传入的文件为以下这些内容
在这里插入图片描述

编写脚本

关于获取数据库和实现增删改查的内容

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using MySql.Data.MySqlClient;//MySql连接器命名空间
using System;

public class mysql : MonoBehaviour
{
    //创建数据库
    //服务器名称,端口号,数据库,用户名,密码,数据格式,连接形式

    // Start is called before the first frame update
    string strConn = "server =localhost;port=3306;database=;user=root;password=;Charset=utf8";//这里填自己的数据库名称和密码

    //创建Mysql连接器
    MySqlConnection sqlConnection;
    void Start()
    {
        //操作数据库的第一步
        sqlConnection = new MySqlConnection(strConn);
        try
        {
            sqlConnection.Open();
            Debug.Log(sqlConnection.State);//在代码中进行了分别的测试,也许我不应该放到一起什么的,应该分开来看,不过都这样了,就暂且如此吧,如果要进行别的操作只需要注释掉对应的操作就行了

            //1.增 insert
            //InsterData();
            //2.删 delet
            //DeletData();
            //3.改 update
            //UpdateData();
            //4.查 select
            SelectData();
        }
        catch(System.Exception) {
            throw;
        }
        finally{
            if(sqlConnection.State.ToString()=="open")
        //操作数据库的最后一步
        
        sqlConnection.Close();
        Debug.Log(sqlConnection.State);
        }
        }
//同理,在写sql语句的时候将名称改为自己的表名和属性
    private void SelectData()
    {
        //写sql语句
        string strSql = "select * from qquser where QQUserId= 5;";
        //使用MySqlCommand发送语句
        using(MySqlCommand mySqlCommand = new MySqlCommand(strSql, sqlConnection))
        {
             //执行ExecuteReader方法
             using(MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader())
            {
                //通过MySqlDataReader读取数据
                while (mySqlDataReader.Read()){
                    //使用GetXXX获取不同类型的数据
                    Debug.Log(mySqlDataReader.GetString(0));
                    Debug.Log(mySqlDataReader.GetString(1));
                    //Debug.Log(mySqlDataReader.GetString(2));
                }
            }
        }
        

       
        //throw new NotImplementedException();
    }

    private void UpdateData()
    {
        throw new NotImplementedException();
    }

    private int DeletData()
    {
        string strSql = "delete from qquser where QQUserId=7;";
        using (MySqlCommand mySqlCommand = new MySqlCommand(strSql, sqlConnection))
        {
            //执行ExecuteNonQuery方法
            return mySqlCommand.ExecuteNonQuery();
            throw new NotImplementedException();
        }
    }

    private void InsterData()
    {
        //写sql语句
        //string strSql = "insert into student(name,age) values('虚竹',25);";
        string strSql = "insert into qquser(QQUserId,QQPassword) values(7,321);";
        //使用MySqlCommand发送语句
        using (MySqlCommand mySqlCommand = new MySqlCommand(strSql, sqlConnection))
        {
//执行ExecuteNonQuery方法
        mySqlCommand.ExecuteNonQuery();
        throw new NotImplementedException();
        }
        
    }


    // Update is called once per frame
    void Update()
    {
       
    }
}

查看效果

通过代码中的连接以及增删改查,进入数据库看看有没有生效
虽说是增删改查,但是既然写到了查那就先从查开始吧

将脚本挂载到unity上点击run
在这里插入图片描述
在这里插入图片描述
从控制台打印的数据中可以看到,已经查询到了数据库中的第五条数据

同理,现在来试试增加
在这里插入图片描述
运行后在navicat中刷新,可以看到增加了一条数据

尝试一下把刚加入的数据删除掉
运行后
在这里插入图片描述
可以看到数据库中的数据被删除了

那么我们就完成了增删查的操作,剩下改暂时懒得写了,感兴趣的可以自己尝试一下,只要照猫画虎将sql语句修改一下就可以了

以上。


http://www.kler.cn/a/149322.html

相关文章:

  • Spring Boot实现文件上传与OSS集成:从基础到应用
  • 使用Docker快速部署FastAPI Web应用
  • vivo 游戏中心包体积优化方案与实践
  • 【go从零单排】Timer、Epoch 时间函数
  • JavaScript高级程序设计基础(四)
  • 深度学习——权重初始化、评估指标、梯度消失和梯度爆炸
  • 界面控件DevExpress WPF流程图组件,完美复制Visio UI!(二)
  • 创建一个带有背景图层和前景图层的渲染窗口
  • 软信天成:速看!云端混合数据管理的最佳解决方案
  • 六、Lua运算符
  • 深度视觉目标跟踪进展综述
  • 【虚拟机】Docker基础 【一】
  • C#常用运算符的优先级
  • 双十二有什么好物是值得推荐?智能家居好物推荐
  • linux的基本指令
  • webpack如何设置兼容浏览器的范围​browserslist
  • 用Sublime编写Lua脚本
  • 内存标记扩展(MTE):通过架构增强内存安全性
  • easyExcel自定义导出,指定列,设置请求头背景色,加入合计行,设置合计行字体,背景色等等
  • 办公软件定制开发在企业发展中的优势|app小程序搭建
  • ArkTS开发webview,html页面中的input和按钮等操作均无响应 【Bug已解决-鸿蒙开发】
  • 如何在安卓Termux中使用SFTP文件传输并结合内网穿透工具实现远程传输
  • elementui的table合并列,三个一组
  • office tool plus工具破解word、visio等软件步骤
  • C++基础 -10- 类的构造函数
  • Docker—共享应用程序