Unity链接Mysql 数据库实现注册登录

article/2025/7/16 11:11:19

 1.搭建注册和登录的UI以及跳转代码撰写

2.安装Mysql 数据库到服务器或者本地电脑

我这里使用的是小皮工具,安装玩数据库后创建一个新的用户以及表格

安装Navicate 链接数据库,方便可视化数据库 

 

点击查询-新建查询-输入命令-运行!完成表格创建!

在这里执行一条SQL数据库代码命令,目的是创建一个表格。

下面就是创建一个简单表格的命令!

CREATE TABLE `user` (`id` INT NOT NULL AUTO_INCREMENT,`username` VARCHAR(50) NOT NULL COMMENT '账号',`password` VARCHAR(255) NOT NULL COMMENT '密码哈希值',PRIMARY KEY (`id`),UNIQUE KEY `idx_username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户账号表'; 

截图里面我是已经创建过了!

 

3.把MySql.Data.dll 放到Unity 项目Assets 里面

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
using MySql.Data.MySqlClient;using UnityEngine.XR.ARFoundation;
using UnityEngine.SceneManagement;public class UserDataMysql : MonoBehaviour
{// 用户输入的用户名和密码,存储到 MySQL 数据库中public TMP_InputField UserAccountInput;public TMP_InputField UserPasswordInput;public TMP_InputField UserLoginAccountInput;public TMP_InputField UserLoginPasswordInput;public void ResigerButton(){ // 注册按钮的点击事件,将用户输入的用户名和密码存储到 MySQL 数据库中string userAccount = UserAccountInput.text;string userPassword = UserPasswordInput.text;// 连接 MySQL 数据库,执行 SQL 语句,将用户名和密码存储到数据库中// 1.连接数据库string connStr = "server=127.0.0.1;port=3306;user=xuni231;password=123456;database=ar";MySqlConnection conn = new MySqlConnection(connStr);conn.Open();// 2.执行 SQL 语句string sql = "INSERT INTO user (username, password) VALUES ('" + userAccount + "','" + userPassword + "')";MySqlCommand cmd = new MySqlCommand(sql, conn);cmd.ExecuteNonQuery();Debug.Log("注册成功"+ userAccount+"密码"+ userPassword);// 3.关闭数据库连接conn.Close();   }public void LoginButton(){// 登录按钮的点击事件,从 MySQL 数据库中查询用户输入的用户名和密码是否匹配string userAccount = UserLoginAccountInput.text;//用户登录时输入的用户名string userPassword = UserLoginPasswordInput.text;//用户登录时输入的密码// 连接 MySQL 数据库,执行 SQL 语句,查询用户名和密码是否匹配  // 1.连接数据库string connStr = "server=127.0.0.1;port=3306;user=xuni231;password=123456;database=ar";MySqlConnection conn = new MySqlConnection(connStr);conn.Open();// 2.执行 SQL 语句string sql = "SELECT * FROM user WHERE username='" + userAccount + "' AND password='" + userPassword + "'";MySqlCommand cmd = new MySqlCommand(sql, conn);MySqlDataReader reader = cmd.ExecuteReader();//把用户输入的账号密码,发给数据库,查询是否匹配// 3.读取查询结果,判断是否匹配if (reader.Read()){Debug.Log("登录成功");// 登录成功,跳转到AR人体识别界面ARButton();}else{Debug.Log("登录失败");}// 4.关闭数据库连接conn.Close();}public void ARButton(){// 跳转到AR地面识别场景,场景名字:ARMainScence//Application.LoadLevel("ARMainScence");//loadlevel是加载场景的函数,参数是场景的名字SceneManager.LoadScene("ARMainScence");//SceneManager.LoadScene是加载场景的函数,参数是场景的名字}
}


http://www.hkcw.cn/article/tSeneqcBtT.shtml

相关文章

你了解ConcurrentHashMap吗?ConcurrentHashMap九连问

多线程环境下,使用Hashmap进行put操作会造成数据覆盖,应该使用支持多线程的 ConcurrentHashMap。 HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进行put操作,调用了HashMap的putVal(),具体原因: 假设两…

Pyenv 使用指南:多版本 Python 环境管理

目录 Pyenv 是什么?安装 Pyenv管理 Python 版本虚拟环境管理项目级 Python 版本控制高级技巧常见问题解决最佳实践 Pyenv 是什么? Pyenv 是一个强大的 Python 版本管理工具,允许你: 在同一台机器上安装多个 Python 版本轻松切换…

Cursor 玩转 腾讯地图 MCP Server

腾讯地图WebService API 服务简介 腾讯地图WebService API 是基于HTTPS/HTTP协议构建的标准化地理数据服务接口。该接口支持跨平台调用,开发者可使用任意客户端、服务器端技术及编程语言,遵循API规范发起HTTPS请求,获取地理信息服务&#xf…

(LeetCode 每日一题)2359. 找到离给定两个节点最近的节点( 图)

题目:2359. 找到离给定两个节点最近的节点 思路:分别记录node1和node2到其他节点的距离d1、d2,然后找最小的值即可。时间复杂度0(n),细节看注释。 C版本: class Solution { public:// 因为最多只会有一条出边&#x…

中国外卖包装废弃物高精度网格图谱(Tif/Excel/Shp)

数据简介 今天我们分享的数据是中国外卖包装废弃物高分辨率网格数据集,该数据集包含中国2018年1平方公里范围内产生的外卖包装废弃物总量的栅格数据以及各城市详细的外卖包装废弃物核算结果表格,我们将中国区域的数据裁剪成各省以及各市的区域&#xff0…

每日Prompt:指尖做画

提示词 微缩景观,微距摄影,俯瞰角度,特写,硕大食指手指甲,一个小小的人正在做画,小人右手拿画笔,小人左手拿调色盘,在指甲上作画,画的是中国古代山水画,背景…

调用Gensim库训练Word2Vec模型

本文为🔗365天深度学习训练营内部文章 原作者:K同学啊 一、Word2Vec是什么? 自然语言处理(NLP)是一种涉及到处理语言文本的计算机技术。在 NLP 中,最小的处理单位是词语,词语是语言文本的基本组成部分。词语组成句子&a…

【Java】你真的了解JVM吗?

类加载机制 JVM(Java虚拟机)中的类加载机制是指将Java类的字节码加载到内存中,并为其创建Class对象的过程。类加载机制的核心在于“类加载器”,它是负责加载类的组件。Java中的类加载机制主要包括以下几个步骤: 加载&…

JVM学习-内存结构(二)

一、堆 1.定义 2.堆内存溢出问题 1.演示 -Xmx设置堆大小 3.堆内存的诊断 3.1介绍 1,2都是命令行工具(可直接在ideal运行时,在底下打开终端,输入命令) 1可以拿到Java进程的进程ID,2 jmap只能查询某一个时…

JVM相关内容

jvm的跨平台,字节码的作用 jvm的跨平台 不同操作系统系统运行的JVM不一样,但度能够处理对应的字节码文件 字节码的作用 利用编译节省了运行的时候的效率 JVM整体结构 类加载子系统:用于加载不同的class(字节码)文…

Sqlite3数据库表内数据批量读取操作---sqlite3_stmt机制

0、引言 在前面两篇文章已经对数据环境搭建、数据批量写入库中进行了较为详细的讲解。因此,基于前两篇文章内容的基础上,本文主要从数据库中批量数据读取操作进行梳理讲解。 嵌入式数据库SQLite 3配置使用详细笔记教程_sqlite3-CSDN博客 SQLite 3 优化批…

官方指定Jmeter配置JVM堆内存方式

软件测试资料领取:[内部资源] 想拿年薪40W的软件测试人员,这份资料必须领取~ 软件测试面试刷题工具领取:软件测试面试刷题【800道面试题答案免费刷】 1.概述 在使用Jmeter做性能测试过程中,可能会应为默认设置的堆内存值较小出…

线上JVM OOM问题,如何排查和解决?

今天咱们来聊聊让无数 Java 开发者头疼的 JVM OOM(Out Of Memory,内存溢出)问题。在面试中,OOM 问题也是面试官的“心头好”,因为它能直接考察你对 JVM 的理解,以及你在实际问题面前的排查和解决能力。 一…

JVM常见线上问题:CPU 100%、内存泄露问题排查

一、CPU 100% 问题排查 1.1、找到 cpu 占有率最高的 java 进程号 使用命令: top -c 显示运行中的进程列表信息, shift + p 使列表按 cpu 使用率排序显示。 PID = 2227 的进程,cpu 使用率最高 1.2、根据进程号找到 cpu 占有率最高的线程号 使用命令: top -Hp {pid} ,同…

JVM 一文详解

目录 JVM 简介 JVM 中的内存区域划分 1. 堆(一个进程只有一份 ------ 线程共享) 2. 栈(一个进程可以有 N 份 ------ 线程私有) Java 虚拟机栈: 本机方法栈: 3. 程序计数器(一个线程可以…

【JVM】关于JVM的内部原理你到底了解多少(八股文面经知识点)

前言 🌟🌟本期讲解关于HTTPS的重要的加密原理~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🔥 你的点赞就是小编不断更新的最大动力 🎆那么废话不…

深入理解 JVM 的栈帧结构

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c=1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,高并发设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生Docker和K8s…

JVM 机制

目录 一、什么是 JVM: 二、JVM 的运行流程: 三、JVM 内存区域划分: 1、( 1 ) 程序计数器: 1、( 2 ) 元数据区: 1、( 3 ) 栈: 1、( 4 ) 堆: 四、类加载: 1、什么时候会触…

【JVM】类加载机制

文章目录 类加载机制类加载过程1. 加载2. 验证3. 准备4. 解析偏移量符号引用和直接引用 5. 初始化 类加载机制 类加载指的是,Java 进程运行的时候,需要把 .class 文件从硬盘读取到内存,并进行一些列的校验解析的过程(程序要想执行…

【JVM】从零开始深度解析JVM

本篇博客给大家带来的是JVM的知识点, 重点在类加载和垃圾回收机制上. 🐎文章专栏: JavaEE初阶 🚀若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动力 . 王子,公主请阅🚀 …