mysql++ 自带的一些精巧演示例子

博主工作中需用mysql++访问MySQL数据库,认为其代码优雅并分享。介绍了mysql++是访问MySQL的C++ API封装,给出下载地址和邮件列表,还展示了使用in删除记录、简单查询等典型例子,最后表示要在ATL中使用mysql++。

最近在工作的时候需要使用 mysql++ 来访问 MySQL 数据库,下载源码后看了一下,发现一些代码 非常优雅。
所以贴出来,和大家分享一下。

简单介绍一下 mysql++

mysql++ API 是一组访问MySQL的C++ API封装。主要目的在于把各种Query的操作和STL容器更好的结合。
mysql++ 可以在这里下载: http://www.mysql.com/download_mysql++.html
mysql++ 的邮件列表是: mysql-plusplus@lists.mysql.com
mysql++ API 的几个典型例子:

使用 in 删除 记录:

ostringstream strbuf;
unsigned int i = 0;
con.real_connect(MY_DATABASE, MY_HOST, MY_USER, MY_PASSWORD, 3306, (int) 0, 60, NULL);
Query query = con.query();
query << MY_QUERY; // 使用这样的方法进行查询,真是很简练呀!tcf
ResUse res = query.use();
Row row;
// 开始拼 sql
strbuf << "delete from " << MY_TABLE << " where " << MY_FIELD <<" in (";
for (; row = res.fetch_row(); i++)
strbuf << row[0] << ",";
if (!i)
return 0;
string output(strbuf.str());
output.erase(output.size() - 1, 1); // 去掉最后一个,
output += ")";
query.exec((const string &) output);
//打印结果
cout << output << endl;
return 0;

-------------------------------------------------------------------------------------------------------
query.reset();
query << "select * from cpptest";
// 打印 query 语句
cout << "Query: " << query.preview() << endl;

// 执行query 并保存到 Result
mysqlpp::Result res = query.store();
cout << "记录条数: " << res.size() << endl << endl;
// 打印表中的数据
cout.setf(ios::left);
cout << setw(20) << "Item" <<
setw(9) << "Num" <<
setw(9) << "Weight" <<
setw(9) << "Price" << "Date" << endl << endl;

// Result 类提供的 iterator是只读随机 显示读取记录的
mysqlpp::Row row;
mysqlpp::Result::iterator i;

for (i = res.begin(); i != res.end(); ++i) {
row = *i;
// 可以使用 列的位置或者 名称来 显示
cout << setw(20) << row[0].c_str() <<
setw(9) << row[1].c_str() <<
setw(9) << row.lookup_by_name("weight").c_str() <<
setw(9) << row[3].c_str() <<
row[4] << endl;
}

-----------------------------------------------------------------------------------------------------

一个简单的查询
Query query = con.query();
stock row;
row.set("Hot Dogs", 100, 1.5, 1.75, "1998-09-25");
query.insert(row);
cout << "Query : " << query.preview() << endl;
query.execute();
print_stock_table(query);
--------------------------------------------------------------------------------------------------------



我现在要做的是 在 ATL 中使用 mysql++ 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值