藁城外贸网站建设,html电子商务网站模板,站长素材网站,WordPress连接微博目录 Mysql数据库代码封装头文件与源文件 Mysql数据库代码封装
业务层代码不要直接写数据库#xff0c;因为业务层和数据层的代码逻辑也想完全区分开。万一不想存储mysql#xff0c;想存redis的话#xff0c;就要改动大量业务代码。解耦合就是改起来很方便。 首先需要安装m… 目录 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 server127.0.0.1;
static string userroot;
static string password123456;
static string dbnamechat;//初始化数据库连接
MySQL::MySQL()
{_connmysql_init(nullptr);
}//释放数据库连接资源
MySQL::~MySQL()
{if(_conn!nullptr)mysql_close(_conn);
}//连接数据库
bool MySQL::connect()
{MYSQL *pmysql_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);
}
添加一条数据注册业务