MySQL++ 安装
- 安装 mysql+±2.2.3–1.el5.i386.rpm
- 安装 mysql+±devel-2.2.3–1.el5.i386.rpm
- 检查安装: 在 /usr/include 目录下可以找到 MySQL++ 文件夹,里面包括 MySQL++ 的所有头文件。
使用
- MySQL++需要MySQL服务器安装目录下的 include 文件夹中的头文件,因此需要拷贝这些文件到本地目录中
- 使用时需要连接头文件和客户端共享库地址
在 KDevelop 下 Target里面右键 选择 Options->libraries->link libraries ouside…内增加
-L
-lmysqlpp
在项目文件夹上右键选择 Options→Includes 增加
-I/usr/local/include/mysql (这个就是刚才拷贝的include文件夹,我改名为mysql)
-I/usr/include/mysql++ - CPP中加入 #include <mysql++.h>
- 之后就是写代码连接数据库啦,代码如下:
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <iostream>
#include <cstdlib>
#include <mysql++.h>
using namespace std;
using namespace mysqlpp;//这个要加上
int main(int argc, char *argv[])
{
Connection con = new Connection();
//创建数据库的连接,参数依次为 dbname,svcIP,username,password
con.connect("test","192.168.0.*","**","1234567");
if (!con)
{
cout << "Connect failed~!" << endl;
}
else
{
cout << "Oh.year~!" << endl;
cout << con.client_info() << endl; //显示客户端信息
cout << con.host_info() << endl; //应该是连接的服务器与使用的协议
cout << con.server_info() << endl; //显示服务器信息
cout << con.stat() << endl; //server当前状态
}
//写个插入语句吧,证明真的连上并能用
//异常要抓一下。
try
{
Query query = con.query();
query << "insert into test_table values ('test','')";
cout << "Query: " << query.preview() << endl;
query.execute();
cout << "Oh,year,Success~!" << endl;
}
catch(const BadQuery& er)
{
cerr << "error: " << er.what() << endl;
}
//光插入不够,还要查询
try
{
Query query = con.query();
query << "select b from test_table";
ResUse res = query.use(); //构造ResUse的对象res
Row row = res.fetch_row(); //将数据fetch到row对象中
cout << row.raw_data(0) << endl; //第0个字段的内容
}
catch(const BadQuery& er)
{
cerr << "Select error: " << er.what() << endl;
}
return EXIT_SUCCESS;
}