UE4连接MySQL数据库插件开发之优化打包

本篇我们介绍如何向SqlBlueprintFunctionLibrary类中添加关闭连接和检查连接状态的代码,并且修改代码中的部分不规则的命名,最后介绍如何打包此插件。

 

 


1、首先打开以前创建的项目,找到并且打开SqlBlueprintFunctionLibrary类的声明(.h)和实现(.cpp)文件。然后在ConnectToMySQL函数下面添加如下所示代码。


SqlBlueprintFunctionLibrary.h文件

        /**
	 *  获取数据库连接状态
	 * @param ConnObj  数据库连接对象
	 * @return bool  数据库是否连接,true为已连接
	 */
	UFUNCTION(BlueprintCallable, Category = "SQL Utilities")
		static bool GetConnectionState(UMyConnectionObject* ConnObj);

	/**
	 *  关闭数据库连接
	 * @param ConnObj  数据库连接对象
	 * @return bool  是否关闭成功,true为关闭成功
	 */
	UFUNCTION(BlueprintCallable, Category = "SQL Utilities")
		static bool CloseConnection(UMyConnectionObject* ConnObj);

 SqlBlueprintFunctionLibrary.cpp文件

bool USqlBlueprintFunctionLibrary::GetConnectionState(UMyConnectionObject* ConnObj)
{
	if (!ConnObj)
	{
		GEngine->AddOnScreenDebugMessage(-1, 10.0f, FColor::Red, TEXT("对象为空!"));
		return false;
	}
	else
	{
		if (ConnObj->Conn != nullptr)
		{
			return true;
		}
	}
	return false;
}

bool USqlBlueprintFunctionLibrary::CloseConnection(UMyConnectionObject* ConnObj)
{
	if (GetConnectionState(ConnObj))
	{
		mysql_close(ConnObj->Conn);
		//指针归位,否则会变成悬挂指针
		ConnObj->Conn = nullptr;
		ConnObj = nullptr;
		return true;
	}
	return false;
}

上述代码比较简单,唯一要留意的是,关闭连接后,指针需要手动归零,否则会变成悬挂指针(野指针),严重时会造成程序崩溃。


2、虚幻4的编码规范官方文档中有:Object类的子类前缀为U,Actor类的子类前缀为A,枚举的前缀为E,结构体的前缀为F,其它的不做介绍。变量命名为每个首字母大写,布尔型的变量前缀必须为b,且常用格式为bIs+动词或名词。临时变量我采用的前缀为t,其它的暂不做介绍。经过粗略优化后的代码如下所示。


SqlBlueprintFunctionLibrary.h文件

// Copyright 2020 NanGongTianYi. All Rights Reserved.

#pragma once

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

/** 一行所含数据 */
USTRUCT(BlueprintType)
struct FQueryResultRow
{
	GENERATED_BODY()
		/** 一行的数据 */
		UPROPERTY(BlueprintReadWrite, Category = "Reult Row Value")
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值