栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

数据库连接池:数据库编程-Connection的实现

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据库连接池:数据库编程-Connection的实现

文章目录
  • 环境配置
  • Connection.h
  • Connection.cpp
  • 运行示例

环境配置

由于是在 virtual studio 2022上开发,若要使用到MySQL自带的库,需要配置环境。

  1. 打开解决方案,右键点击项目名称

在弹出页面点击最下面的属性。

找到MySQL的mysql.h的include路径,复制该路径

复制到刚打开的属性页面里的 【C/C++】 =》选择【常规】=》在【附加包含目录】后面粘贴路径。

  1. 找到.lib的路径,复制该路径

粘贴到 【链接器】=》【常规】=》【附加库目录】

  1. 将lib下面的libmysql.dll复制到自己的项目下


再去属性里选择【链接器】、【输入】、【附加依赖项】、加入这个库的名字。

Connection.h
#pragma once
// 实现MySQL数据库的操作
#include 
#include 

using namespace std;

// 数据库操作类
class Connection
{
public:
	// 初始化数据库连接
	Connection();

	// 释放数据库连接资源
	~Connection();

	// 连接数据库
	bool connect(string ip,
		unsigned short port,
		string user, 
		string password,
		string dbname);

	// 更新操作 insert、delete、update
	bool update(string sql);

	// 查询操作 select
	MYSQL_RES* query(string sql);

private:
	MYSQL* _conn; // 表示和MySQL Server的一条连接
};
Connection.cpp
#include 
#include 
#include "Connection.h"
#include "public.h"
using namespace std;

// 初始化数据库连接
Connection::Connection()
{
	_conn = mysql_init(nullptr);
}

// 释放数据库连接资源
Connection::~Connection()
{
	if (_conn != nullptr)
		mysql_close(_conn);
}

// 连接数据库
bool Connection::connect(string ip, unsigned short port, string user, 
	string password, string dbname)
{
	MYSQL* p = mysql_real_connect(_conn, ip.c_str(), user.c_str(),
		password.c_str(), dbname.c_str(), port, nullptr, 0);
	return p != nullptr;
}

// 更新操作 insert、delete、update
bool Connection::update(string sql)
{
	if (mysql_query(_conn, sql.c_str()))
	{
		LOG("更新失败:" + sql);
		return false;
	}
	return true;
}

// 查询操作 select
MYSQL_RES* Connection::query(string sql)
{
	if (mysql_query(_conn, sql.c_str()))
	{
		LOG("查询失败:" + sql);
		return nullptr;
	}
	return mysql_use_result(_conn);
}
运行示例

执行一个插入的语句:

#define _CRT_SECURE_NO_WARNINGS
#include
#include "Connection.h"
using namespace std;

int main(void) {
	Connection conn;
	char sql[1024] = { 0 };
	sprintf(sql, "insert into user(id, name, age, sex) values(%d, '%s', %d, '%s')",
		1, "zhangsan", 20, "male");
	conn.connect("127.0.0.1", 3306, "root", "123456", "chat");
	conn.update(sql);

	return 0;
}

MySQL插入成功

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/983615.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号