c mysql封装类_C++ MySQL封装类

//ConsoleApplication2.cpp : Defines the entry point for the console application.//#include"stdafx.h"#include#include#include#include#include"ManageSQL.h"#include

using namespacestd;intmain()

{

mysql_db mydb;//打开.. 连接

if (-1 == mydb.mysql_open("Localhost", "root", "123456", "electronicpolice", MYSQL_PORT))

cout<< mydb.mysql_lasterror() <

string sql = "create database if not exists database_test";if ( -1 ==mydb.mysql_noResult_query(sql.c_str()))

cout<< mydb.mysql_lasterror() <

sql = "use database_test";if ( -1 ==mydb.mysql_noResult_query(sql.c_str()))

cout<< mydb.mysql_lasterror() <

sql = "create table if not exists table_test(id int not null auto_increment, name varchar(20) not null, age int not null ,primary key (id) )";if ( -1 ==mydb.mysql_noResult_query(sql.c_str()))

cout<< mydb.mysql_lasterror() <

sql = "insert into table_test (name,age) values('newsoul','25')";if ( -1 ==mydb.mysql_noResult_query(sql.c_str()))

cout<< mydb.mysql_lasterror() <

sql= "insert into table_test (name,age) values('百度','100')";if ( -1 ==mydb.mysql_noResult_query(sql.c_str()))

cout<< mydb.mysql_lasterror() <

sql = "select * from table_test where id=1";

vectorvResults;if (-1 ==mydb.mysql_select_SingleLine_query(sql.c_str(),vResults))

cout<< mydb.mysql_lasterror() <

cout << "select * from table_test where id=1的结果:" <::iterator it = vResults.begin(); it != vResults.end(); it++)

cout<< (*it) <

cout<< endl <

sql = "select * from table_test";int i = 0;while (i++ < 100){

map>map_res;if (-1 ==mydb.mysql_select_query(sql.c_str(),map_res))

cout<< mydb.mysql_lasterror() <

cout << "select * from table_test的结果:" <>::iterator it = map_res.begin(); it != map_res.end(); it++){

cout<< "第" << it->first+1<< "条 :";for (int i=0;isecond.size();i++)

{

cout<< it->second[i] << "\t";

}

cout<

}

}

system("pause");return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL封装是将MySQL数据库库函数封装在一个或多个类中,使得它们更容易被使用,同时提供更高层次的抽象和安全性。以下是一个简单的MySQL封装的示例: #include <mysql/mysql.h> #include <string> // 定义一个封装MySQL的类 class MySqlWrapper { public: MySqlWrapper(const std::string& host, const std::string& user, const std::string& passwd, const std::string& db, int port = 3306) : host_(host), user_(user), passwd_(passwd), db_(db), port_(port), conn_(nullptr) { } ~MySqlWrapper() { if (conn_) { mysql_close(conn_); } } bool Connect() { // 初始化MySQL if (mysql_library_init(0, nullptr, nullptr) != 0) { return false; } // 创建连接 conn_ = mysql_init(nullptr); if (conn_ == nullptr) { return false; } // 设置连接选项 mysql_options(conn_, MYSQL_OPT_CONNECT_TIMEOUT, &connect_timeout_); mysql_options(conn_, MYSQL_OPT_READ_TIMEOUT, &read_timeout_); mysql_options(conn_, MYSQL_OPT_WRITE_TIMEOUT, &write_timeout_); // 连接MySQL服务器 if (!mysql_real_connect(conn_, host_.c_str(), user_.c_str(), passwd_.c_str(), db_.c_str(), port_, nullptr, 0)) { mysql_close(conn_); conn_ = nullptr; return false; } return true; } bool ExecQuery(const std::string& sql) { if (conn_ == nullptr) { return false; } // 执行SQL语句 if (mysql_query(conn_, sql.c_str()) != 0) { return false; } // 获取结果集 MYSQL_RES* res = mysql_store_result(conn_); if (res == nullptr) { return false; } // 处理结果集 MYSQL_ROW row; while ((row = mysql_fetch_row(res)) != nullptr) { // 处理每一行数据 } // 释放结果集 mysql_free_result(res); return true; } private: std::string host_; std::string user_; std::string passwd_; std::string db_; int port_; int connect_timeout_ = 5; int read_timeout_ = 5; int write_timeout_ = 5; MYSQL* conn_; }; // 使用示例 int main() { MySqlWrapper mysql("localhost", "root", "password", "test"); if (!mysql.Connect()) { return 1; } if (!mysql.ExecQuery("SELECT * FROM mytable")) { return 2; } // 其他操作 return 0; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值