集群聊天服务器(7)数据模块

news/2024/11/20 16:58:25/

目录

  • Mysql数据库代码封装
  • 头文件与源文件

Mysql数据库代码封装

业务层代码不要直接写数据库,因为业务层和数据层的代码逻辑也想完全区分开。万一不想存储mysql,想存redis的话,就要改动大量业务代码。解耦合就是改起来很方便。
首先需要安装mysql以及libmysqlclient-dev这个开发包
在这里插入图片描述
依赖文件加一个
在这里插入图片描述
头文件搜索路径加一个
在这里插入图片描述

头文件与源文件

#ifndef DB_H
#define DB_H#include <mysql/mysql.h>
#include <string>
using namespace std;//数据库操作类
class MySQL
{
public://初始化数据库连接MySQL();//释放数据库连接资源~MySQL();//连接数据库bool connect();//更新操作bool update(string sql);//查询操作MYSQL_RES* query(string sql);private:MYSQL * _conn;
};#endif
#include "db.h"
#include <muduo/base/Logging.h>//数据库配置信息
static string server="127.0.0.1";
static string user="root";
static string password="123456";
static string dbname="chat";//初始化数据库连接
MySQL::MySQL()
{_conn=mysql_init(nullptr);
}//释放数据库连接资源
MySQL::~MySQL()
{if(_conn!=nullptr)mysql_close(_conn);
}//连接数据库
bool MySQL::connect()
{MYSQL *p=mysql_real_connect(_conn,server.c_str(),user.c_str(),password.c_str(),dbname.c_str(),3306,nullptr,0);if(p!=nullptr){//c和c++代码默认的编码字符是mysql_query(_conn,"set names gbk");}return p;
}//更新操作
bool MySQL::update(string sql)
{if(mysql_query(_conn,sql.c_str())){LOG_INFO<<__FILE__<<":"<<__LINE__<<":"<<sql<<"更新失败!";return false;}return true;
}//查询操作
MYSQL_RES* MySQL::query(string sql)
{if(mysql_query(_conn,sql.c_str())){LOG_INFO<<__FILE__<<":"<<__LINE__<<":"<<sql<<"查询失败";return nullptr;}return mysql_use_result(_conn);
}

添加一条数据,注册业务
在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/news/1548528.html

相关文章

Conda 安装纯净版ComfyUI

网上有很多整合包&#xff0c; 我个人喜欢纯净版&#xff0c; 自已搭建 1 拉代码 git clone https://github.com/comfyanonymous/ComfyUI 如果没有装过git,下载安装: https://git-scm.com/ https://git-lfs.com/ 2 创建环境 cd ComfyUI conda create -n ComfyUI python3.11…

【机器学习】机器学习中用到的高等数学知识-8. 图论 (Graph Theory)

图的表示和遍历&#xff1a;用于处理社交网络、推荐系统等结构化数据。 图论是研究图&#xff08;Graph&#xff09;结构的数学分支&#xff0c;在处理网络、关系和结构化数据时起着至关重要的作用。本文将从图的基本表示、遍历算法及其在实际应用中的使用展开讨论&#xff0c…

华为数字化转型的本质为何是管理变革

随着全球经济的加速数字化转型&#xff0c;企业纷纷进入了数字化时代的大潮。华为作为数字化转型的领军者&#xff0c;已经成功实践了从传统企业向数字化企业的蜕变。对于企业而言&#xff0c;数字化转型不仅仅是新技术的应用&#xff0c;更是一场管理变革。在这场变革的背后&a…

Bugku CTF_Web——字符?正则?

Bugku CTF_Web——字符&#xff1f;正则&#xff1f; 进入靶场 <?php highlight_file(2.php); $keyflag{********************************}; $IM preg_match("/key.*key.{4,7}key:\/.\/(.*key)[a-z][[:punct:]]/i", trim($_GET["id"]), $match); if…

基于yolov8、yolov5的植物类别识别系统(含UI界面、训练好的模型、Python代码、数据集)

项目介绍 项目中所用到的算法模型和数据集等信息如下&#xff1a; 算法模型&#xff1a;     yolov8、yolov8 SE注意力机制 或 yolov5、yolov5 SE注意力机制 &#xff0c; 直接提供最少两个训练好的模型。模型十分重要&#xff0c;因为有些同学的电脑没有 GPU&#xff0…

数字图像处理(c++ opencv):彩色图像处理-彩色基础与彩色模型

彩色图像基础 颜色特性&#xff1a;亮度、色调、饱和度 &#xff08;1&#xff09;亮度&#xff1a;即强度&#xff0c;如灰度值 &#xff08;2&#xff09;色调&#xff1a;混合光波中的主导光波属性&#xff0c;即被观察者感知的主导色。如描述一个物体为红色&#xff0c;就…

C函数从lua中读取数据接口常用接口

读取基本数据类型的接口 lua_tonumber和lua_tointeger 用途&#xff1a;用于从Lua栈中获取数字类型的数据。lua_tonumber用于获取浮点数&#xff0c;lua_tointeger用于获取整数。示例&#xff1a;假设在Lua中调用一个C函数并传入一个数字&#xff0c;在C函数中可以这样获取这个…

多目标优化算法:多目标黑翅鸢算法(MOBKA)求解UF1-UF10,提供完整MATLAB代码

一、黑翅鸢算法介绍 黑翅鸢优化算法&#xff08;Black-winged Kite Algorithm, BKA&#xff09;是2024年提出的一种元启发式优化算法&#xff0c;其灵感来源于黑翅鸢的迁徙和捕食行为。这种算法通过模拟黑翅鸢在捕食过程中的飞行和搜索策略&#xff0c;被用来解决优化问题&…