UE4書き込みデータベース接続のMySQLプラグインデータベース接続コードの開発

まず、この記事の導入は、我々はプライベートコンストラクタ、公共MYSQLオブジェクトを追加し、SqlBlueprintFunctionLibraryクラスの接続機能インスタンスおよびデータベースMyConnectionObjectクラスを作成する方法について話して、青写真にさらされ、ヘッダがMyConnectionObjectクラスのファイルかについて話しています。

 


1は、最初にの上にクリックし、以前に作成したプロジェクトを開き、ローカルのWindowsデバッガの瞬間を待って、ボタンを押します。



2、コンパイル待ち、それが自動的にUE4エディタを開きます。



3、比較的高速なコンパイルボタンでトップエディタUE4がコンパイルボタン、。エラーを見つけるのは比較的容易であるので、しかし、一般的にはVisual Studioでコンパイラを使用することをお勧めします。



4エラーが発生しなかった場合は、デバッグを停止します。我々は以前のVisual Studioで作成された最初のオープンMyConnectionObject.hとMyConnectionObject.cppファイル。次に、以下に示すコードを追加し、ヘッダファイル内に導入されます。


 MyConnectionObject.hファイル

#pragma once

#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
//引入mysql头文件
#include "mysql.h"
#include "MyConnectionObject.generated.h"

/**
 *数据库连接对象类
 */
UCLASS(BlueprintType)//声明为蓝图类型的类
class TESTMYSQL_API UMyConnectionObject : public UObject
{
	GENERATED_BODY()
private:
    //声明私有构造函数
    UMyConnectionObject();
public:
    //声明MySQL连接对象
    MYSQL* Conn;
};

 MyConnectionObject.cppファイル

 


#include "MyConnectionObject.h"


UMyConnectionObject::UMyConnectionObject()
{
	//初始化连接对象
	Conn = nullptr;
}

添加が完了した後、エラーのないことを確認するために、ボタンのデバッグをクリックします。


5、およびSqlBlueprintFunctionLibrary.cpp SqlBlueprintFunctionLibrary.h開いているファイルは、以下のコードを追加します。


SqlBlueprintFunctionLibrary.hファイル

#pragma once

#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
//引入mysql头文件
#include "mysql.h"
//引入数据库连接对象头文件
#include "MyConnectionObject.h"
#include "SqlBlueprintFunctionLibrary.generated.h"

/**
 * 数据库连接类
 */
UCLASS(BlueprintType)//声明为蓝图类型
class TESTMYSQL_API USqlBlueprintFunctionLibrary : public UBlueprintFunctionLibrary
{
	GENERATED_BODY()
public:
    /**
     * 连接MySQL数据库函数
     */
    UFUNCTION(BlueprintCallable,Category="SQL Utilities")
    static UMyConnectionObject* ConnectToMySQL(FString Host,FString userName,FString Password,FString dbName,int32 Port,FString& Msg);
};

 SqlBlueprintFunctionLibrary.cpp

#include "SqlBlueprintFunctionLibrary.h"
#include <string>

UMyConnectionObject* USqlBlueprintFunctionLibrary::ConnectToMySQL(FString Host, FString userName, FString Password, FString dbName, int32 Port, FString& Msg)
{
	//字符编码格式转换
	std::string t_Host(TCHAR_TO_UTF8(*Host));
	std::string t_userName(TCHAR_TO_UTF8(*userName));
	std::string t_Password(TCHAR_TO_UTF8(*Password));
	std::string t_dbName(TCHAR_TO_UTF8(*dbName));
	//数据库连接对象创建
	UMyConnectionObject* ConnObj = NewObject<UMyConnectionObject>();
	//初始化MYSQL连接对象
	ConnObj->Conn = mysql_init(nullptr);
	//判断连接状态,并返回相应信息
	if (!mysql_real_connect(ConnObj->Conn,t_Host.c_str(),t_userName.c_str(),t_Password.c_str(),t_dbName.c_str(),(uint32)Port,nullptr,0))
	{
		Msg = TEXT("连接失败!");
	}
	else 
	{
		Msg = TEXT("连接成功!");
	}
	//返回数据库连接对象
	return ConnObj;
}

青写真漢字はUTF-8形式とコードの保存、文字化けを回避するには。


図6は、前のステップ、つまり何のペーストエラーを確実にしないの上でクリックした後、ローカルのWindowsデバッガのボタン、瞬間を待って、それが自動的にコンパイル後UE4エディタを開きます。



7、 打开UE4编辑器中的关卡蓝图,右键搜索ConnectToMySQL函数,拖到图表区域中。填写数据库相关信息,Host是数据库地址(默认为127.0.0.1),UserName是数据库用户名(默认为root),Password是数据库密码,DbName是数据库名,Port是数据库端口号(默认为3306)如下图所示。



8、编译上一步骤中的蓝图,播放关卡。哇,连接成功了! 


如果连接失败,检查数据库是否安装以及数据库服务是否开启。 

 

至此,我们的数据库已经可以成功连接了。下篇我们将讲如何向数据库中添加记录。

发布了7 篇原创文章 · 获赞 0 · 访问量 822

おすすめ

転載: blog.csdn.net/qq_36298431/article/details/104084668
おすすめ