UE5 SQLite
时间: 2025-02-08 08:06:54 浏览: 65
### 如何在 Unreal Engine 5 中使用 SQLite 数据库
#### 安装 SQL Connect 插件
为了能够在 Unreal Engine 5 (UE5) 中使用 SQLite 数据库,需要先安装 `Sql Connect` 插件。该插件可以从虚幻引擎市场下载并安装[^1]。
```plaintext
https://www.unrealengine.com/marketplace/zh-CN/product/d1e931c9fb2a459ea2f33a12823e830a
```
#### 创建数据库文件
创建一个新的 `.db` 文件作为 SQLite 的数据库文件,并将其放置于项目目录中的合适位置,例如 `Content/DataBase/mydatabase.db`。
#### 初始化数据库连接
在 C++ 或蓝图中初始化与 SQLite 数据库的连接。以下是使用 C++ 进行操作的一个简单例子:
```cpp
#include "Sqlite3.h"
#include "Misc/FileHelper.h"
void AMyActor::InitializeDatabase()
{
FString DatabasePath;
// 获取当前项目的根路径
FPaths::ProjectDir(DatabasePath);
// 添加相对路径至数据库文件
DatabasePath /= TEXT("Saved/DataBase/mydatabase.db");
// 打开或创建新的 SQLite 数据库实例
sqlite3* DB = nullptr;
int Result = sqlite3_open(TCHAR_TO_UTF8(*DatabasePath), &DB);
if (Result != SQLITE_OK)
{
UE_LOG(LogTemp, Error, TEXT("Failed to open database: %s"), *FString(sqlite3_errmsg(DB)));
sqlite3_close(DB);
return;
}
}
```
这段代码展示了如何打开现有的 SQLite 数据库或将新数据库保存到指定的位置。如果给定路径不存在,则会自动创建一个新的数据库文件。
#### 查询执行
一旦建立了成功的连接,就可以编写函数来执行查询语句。下面是一个简单的插入记录的例子:
```cpp
bool AMyActor::ExecuteQuery(FString QueryText)
{
char* ErrorMessage;
// 假设已经成功打开了数据库...
int Result = sqlite3_exec(DB, TCHAR_TO_UTF8(*QueryText), NULL, 0, &ErrorMessage);
if (Result != SQLITE_OK)
{
UE_LOG(LogTemp, Warning, TEXT("SQL error: %hs\n%s"), ErrorMessage, *QueryText);
sqlite3_free(ErrorMessage);
return false;
}
return true;
}
// 调用此方法以向表中添加一条记录
void AMyActor::AddRecordToTable(const FString& TableName, const TArray<FString>& Columns, const TArray<FString>& Values)
{
FString InsertStatement = FString::Printf(TEXT("INSERT INTO %s (%s) VALUES ('%s')"),
*TableName,
*FString::Join(Columns, TEXT(", ")),
*FString::Join(Values, TEXT("', '")));
ExecuteQuery(InsertStatement);
}
```
上述代码片段定义了一个通用的方法用于执行任意形式的 SQL 查询以及专门针对插入操作的方法。注意,在实际应用中应当考虑防止 SQL 注入攻击等问题。
阅读全文
相关推荐


















