返回
在Unity中实现数据库增删改查功能
前端
2024-01-29 14:22:36
Unity实用功能之Unity连接MySql数据库(二)
前言
在上一篇文章中,我们成功地建立了Unity与MySQL数据库之间的连接,为游戏开发奠定了坚实的基础。本篇教程将进一步拓展我们的知识,介绍如何在Unity中使用C#代码实现数据库的增删改查操作,全面提升你的游戏开发能力。
增(Insert)
在数据库中添加新数据记录的过程称为插入。在Unity中,我们可以通过以下步骤进行插入操作:
- 准备SQL语句: 编写一个INSERT INTO语句,指定要插入数据的表名、列名和值。
- 创建Command对象: 使用MySqlCommand类创建Command对象,并设置其CommandText属性为准备好的SQL语句。
- 打开数据库连接: 使用MySqlConnection类的Open()方法打开数据库连接。
- 执行插入操作: 使用Command对象的ExecuteNonQuery()方法执行插入操作。
- 关闭数据库连接: 使用MySqlConnection类的Close()方法关闭数据库连接。
删(Delete)
从数据库中删除现有数据记录的过程称为删除。在Unity中,我们可以通过以下步骤进行删除操作:
- 准备SQL语句: 编写一个DELETE FROM语句,指定要删除数据的表名和条件。
- 创建Command对象: 与插入操作类似,创建Command对象并设置CommandText属性为准备好的SQL语句。
- 打开数据库连接: 打开数据库连接。
- 执行删除操作: 使用Command对象的ExecuteNonQuery()方法执行删除操作。
- 关闭数据库连接: 关闭数据库连接。
改(Update)
修改数据库中现有数据记录的过程称为更新。在Unity中,我们可以通过以下步骤进行更新操作:
- 准备SQL语句: 编写一个UPDATE语句,指定要更新的表名、列名和值,以及更新条件。
- 创建Command对象: 创建Command对象并设置CommandText属性为准备好的SQL语句。
- 打开数据库连接: 打开数据库连接。
- 执行更新操作: 使用Command对象的ExecuteNonQuery()方法执行更新操作。
- 关闭数据库连接: 关闭数据库连接。
查(Select)
从数据库中检索数据记录的过程称为查询。在Unity中,我们可以通过以下步骤进行查询操作:
- 准备SQL语句: 编写一个SELECT语句,指定要查询的列名、表名和查询条件。
- 创建Command对象: 创建Command对象并设置CommandText属性为准备好的SQL语句。
- 打开数据库连接: 打开数据库连接。
- 执行查询操作: 使用Command对象的ExecuteReader()方法执行查询操作,返回一个包含查询结果的SqlDataReader对象。
- 读取查询结果: 使用SqlDataReader对象的Read()方法逐行读取查询结果。
- 关闭SqlDataReader对象: 读取完所有查询结果后,关闭SqlDataReader对象。
- 关闭数据库连接: 关闭数据库连接。
实例代码
以下示例代码展示了如何在Unity中实现数据库增删改查功能:
using MySql.Data.MySqlClient;
using UnityEngine;
public class DatabaseManager : MonoBehaviour
{
private MySqlConnection _connection;
private void Awake()
{
// 建立数据库连接
_connection = new MySqlConnection("connectionString");
_connection.Open();
}
private void OnDestroy()
{
// 关闭数据库连接
_connection.Close();
}
public void InsertData(int id, string name, int score)
{
// 准备SQL语句
string sql = "INSERT INTO students (id, name, score) VALUES (@id, @name, @score)";
// 创建Command对象
using (MySqlCommand command = new MySqlCommand(sql, _connection))
{
// 设置参数
command.Parameters.AddWithValue("@id", id);
command.Parameters.AddWithValue("@name", name);
command.Parameters.AddWithValue("@score", score);
// 执行插入操作
command.ExecuteNonQuery();
}
}
public void DeleteData(int id)
{
// 准备SQL语句
string sql = "DELETE FROM students WHERE id = @id";
// 创建Command对象
using (MySqlCommand command = new MySqlCommand(sql, _connection))
{
// 设置参数
command.Parameters.AddWithValue("@id", id);
// 执行删除操作
command.ExecuteNonQuery();
}
}
public void UpdateData(int id, string name, int score)
{
// 准备SQL语句
string sql = "UPDATE students SET name = @name, score = @score WHERE id = @id";
// 创建Command对象
using (MySqlCommand command = new MySqlCommand(sql, _connection))
{
// 设置参数
command.Parameters.AddWithValue("@id", id);
command.Parameters.AddWithValue("@name", name);
command.Parameters.AddWithValue("@score", score);
// 执行更新操作
command.ExecuteNonQuery();
}
}
public List<Student> QueryData()
{
// 准备SQL语句
string sql = "SELECT * FROM students";
// 创建Command对象
using (MySqlCommand command = new MySqlCommand(sql, _connection))
{
// 执行查询操作
using (MySqlDataReader reader = command.ExecuteReader())
{
// 创建一个Student列表来存储查询结果
List<Student> students = new List<Student>();
// 逐行读取查询结果
while (reader.Read())
{
// 创建一个Student对象来存储当前行的值
Student student = new Student
{
Id = reader.GetInt32("id"),
Name = reader.GetString("name"),
Score = reader.GetInt32("score")
};
// 将Student对象添加到列表中
students.Add(student);
}
// 返回查询结果
return students;
}
}
}
}
结语
通过本篇教程,你已经掌握了在Unity中使用C#代码实现数据库增删改查功能的技巧。通过灵活运用这些功能,你可以在Unity游戏中轻松管理和操作数据库中的数据,为你的游戏增添更多的互动性和趣味性。