UE5 SQLite笔记

开发环境:

系统:Windows 10 64 bit
引擎:Unreal Engine 5.1.1
IDE:JetBrains Rider 2023.2.1
语言:C++
工具:DB Browser for SQLite

 SQLite数据类型:

    //INTEGER	TEXT	BLOB	REAL	NUMERIC
	/*
		integer 				--->整数,可以是1、2、3、4、6或8个字节,SQLite会根据数值大小自动调整。
		real 					--->实数(浮点数),一律使用8个字节存储
		text 					--->文本,最大支持长度为1,000,000,000个字符的单个字符串
		blob 					--->二进制对象,最大支持长度为1,000,000,000个字节
		null 					--->没有值
		char(size)  			--->固定长度的字符串,size规定字符串的长度
		varchar(size) 			--->可变长度的字符串,size规定字符串的最大字符个数
	*/

启用插件:

添加插件模块引用:"SQLiteCore","SQLiteSupport"

// Copyright Epic Games, Inc. All Rights Reserved.

using UnrealBuildTool;

public class PakFramework : ModuleRules
{
	public PakFramework(ReadOnlyTargetRules Target) : base(Target)
	{
		PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
	
		PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "UMG","SQLiteCore","SQLiteSupport"});

		// Uncomment if you are using Slate UI
		//PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore", "InputDevice"});
		
		// Uncomment if you are using online features
		// PrivateDependencyModuleNames.Add("OnlineSubsystem
### 如何在 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 注入攻击等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值