#pragma once

#include 'Modules/ModuleManager.h'#include 'Windows/AllowWindowsPlatformTypes.h'#include 'mysql.h'#include 'Engine/Texture2D.h'#include 'ImageUtils.h'#include 'CoreMinimal.h'#include 'Kismet/BlueprintFunctionLibrary.h'#include 'mySQLPluginBPLibrary.generated.h'

using namespace std;

/** * 存储MySQL数据表的结构体 */USTRUCT(BlueprintType, Category = 'MySql|Tables')struct FMySQLDataTable{ GENERATED_BODY()

/** 数据列名称 */	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = 'SQLDataTable')	FString ColumnName;

/** 数据列数据 */	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = 'SQLDataTable')	TArray<FString> ColumnData;};

/** * 存储MySQL数据行的结构体 */USTRUCT(BlueprintType, Category = 'MySql|Tables')struct FMySQLDataRow{ GENERATED_BODY()

/** 数据行数据 */	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = 'SQLDataRow')	TArray<FString> RowData;};

/** * MySQL插件蓝图函数库 * 提供连接、查询和更新MySQL数据库的蓝图函数 */UCLASS()class MYSQLPLUGIN_API UmySQLPluginBPLibrary : public UBlueprintFunctionLibrary{ GENERATED_BODY()

/** 将FString转换为char* */	static char* GetCharfromFString(FString Query);

/** 将char*转换为wchar_t* */	static wchar_t* GetWCharfromChar(const char* Input);

/**	 * 连接到MySQL数据库	 * @param Server 数据库服务器地址	 * @param DBName 数据库名称	 * @param UserID 用户名	 * @param Password 密码	 * @param IsSuccess 连接是否成功	 * @param errorMassage 错误信息	 */	UFUNCTION(BlueprintCallable, Category = 'MYSQL')	static void Mysql_Connection(FString Server, FString DBName, FString UserID,		FString Password, bool& IsSuccess, FString& errorMassage);

/** 关闭数据库连接 */	UFUNCTION(BlueprintCallable, Category = 'MYSQL')	static void Mysql_Close();

/**	 * 查询数据表中的多行数据	 * @param FeildName 查询的字段名,多个字段用逗号分隔	 * @param TableName 表名	 * @param IsSuccess 查询是否成功	 * @param errorMassage 错误信息	 * @param TableHead 表头	 * @param Rows 查询结果,存储在FMySQLDataRow数组中	 */	UFUNCTION(BlueprintCallable, Category = 'MYSQL')	static void SelectDataTableRows(FString FeildName, FString TableName,		bool& IsSuccess, FString& errorMassage,		TArray<FString>& TableHead, TArray<FMySQLDataRow>& Rows);

/**	 * 向数据表中插入一行数据	 * @param TableName 表名	 * @param Values 插入的值,多个值用逗号分隔,字符串需要用单引号包裹	 * @param IsSuccess 插入是否成功	 * @param errorMassage 错误信息	 */	UFUNCTION(BlueprintCallable, Category = 'MYSQL')	static void insertRow(FString TableName, FString Values,		bool& IsSuccess, FString& errorMassage);

/**	 * 从数据表中删除一行数据	 * @param TableName 表名	 * @param Field 条件字段名	 * @param value 条件字段值	 * @param IsSuccess 删除是否成功	 * @param errorMassage 错误信息	 */	UFUNCTION(BlueprintCallable, Category = 'MYSQL')	static void deleteRow(FString TableName, FString Field, FString value,		bool& IsSuccess, FString& errorMassage);

/**	 * 更新数据表中的数据	 * @param TableName 表名	 * @param Field 要更新的字段名	 * @param NewValue 新值	 * @param FormerField 条件字段名	 * @param FormerValue 条件字段值	 * @param IsSuccess 更新是否成功	 * @param errorMassage 错误信息	 */	UFUNCTION(BlueprintCallable, Category = 'MYSQL')	static void UpdateTable(FString TableName, FString Field, FString NewValue, FString FormerField, FString FormerValue,		bool& IsSuccess, FString& errorMassage);

/**	 * 更新数据表中的二进制文件数据	 * @param TableName 表名	 * @param FieldName 要更新的字段名	 * @param ID 主键ID	 * @param inFile 文件路径	 * @param IsSuccess 更新是否成功	 * @param errorMassage 错误信息	 */	UFUNCTION(BlueprintCallable, Category = 'MYSQL')	static void UpdateBinaryFile(FString TableName, FString FieldName, FString ID, FString inFile,		bool& IsSuccess, FString& errorMassage);

/**	 * 从数据表中查询图像	 * @param TableName 表名	 * @param ID 主键ID	 * @param Image_Indxe 图像索引	 * @param IsSuccess 查询是否成功	 * @param errorMassage 错误信息	 * @param Texture 查询到的图像	 */	UFUNCTION(BlueprintCallable, Category = 'MYSQL')	static void Selectimage(FString TableName, FString ID, int Image_Indxe,		bool& IsSuccess, FString& errorMassage, UTexture2D*& Texture);

/**	 * 获取指定路径下的所有文件	 * @param inPath 文件夹路径	 * @param Fileform 文件扩展名	 * @param FileList 文件列表	 */	UFUNCTION(BlueprintCallable, Category = 'Paths')	static void GetFiles(FString inPath, FString Fileform, TArray<FString>& FileList);};
UE4 MySQL插件:连接、查询和更新数据库的蓝图函数库

原文地址: https://www.cveoy.top/t/topic/bxK6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录