MySql C++调用库Connector/c++编译 和 接口封装【二】Connector/c++编译

一、生成工程文件
cmake -G "Visual Studio 10 2010" -DBOOST_ROOT:STRING="E:\GitHub"
-DBOOST_ROOT:STRING 指定 boost库所在目录 执行完后,就得到sln工程文件。我这里得到的是:MYSQLCPPCONN.sln 二、编译 打开工程文件,编译 MYSQLCPPCONN 方案。 在 mysql-connector-c++-1.1.6\driver\Debug 目录下就可以得到 dll 和 lib文件。
2.1、使用 mysqlcppconn.dll 你需要 libmysql.dll 库文件。
这个文件你可以在 mysql的安装目录 C:\Program Files\MySQL\MySQL Server 5.6\lib 下找到。
2.2、工程中的其他方案,都是 Connector/C++ 的使用例子。作为参考非常有用,建议大家看一下。 三、库的使用
库使用需要几个文件:
1、include 文件夹 c/c++ /常规/附加包含目录
Connector/c++ 的安装版里面的Include 文件夹。或者把 /driver以及/driver/nativeapi 里面的头文件拷贝到一个文件夹里面(注意nativeapi要改名为 cppconn)。
2、Connector/c++ 库文件 和 MySql库文件:
2.1、mysqlcppconn.dll /debug,exe生成目录
2.2、mysqlcppconn.lib 链接器/输入/附加依赖项
2.3、libmysql.dll /debug
3、boost库所在目录 c/c++/常规/附加包含目录 四、使用例子
先建数据库:
create database test;
建表:
use test;
create table test(id int ,name varchar());
插入数据:
insert into test.test value(,"sanyue");
insert into test.test value(,"sixbeauty");
insert into test.test value(,"chouwa");
创建存储过程:
use test;
delimiter $
create procedure testproc1 (nId int) --注意这里和select那句的 ";"
begin
select id,name from test where id = nId;
end
$
delimiter ;
例子:
#include "mysql_connection.h"
#include "mysql_driver.h"
#include "cppconn/prepared_statement.h"
#include "stdlib.h" using namespace std; typedef boost::scoped_ptr<sql::mysql::MySQL_Driver> MySQL_Driver;
typedef boost::scoped_ptr<sql::Connection> Connection;
typedef boost::scoped_ptr<sql::PreparedStatement> PreparedStatement;
typedef boost::scoped_ptr<sql::Statement> Statement;
typedef boost::scoped_ptr<sql::ResultSet> ResultSet; #define CRTDBG_MAP_ALLOC
int main()
{
sql::mysql::MySQL_Driver *driver;
Connection con(NULL);
PreparedStatement prepareState(NULL);
ResultSet result(NULL); //初始化驱动
try
{
driver=(sql::mysql::get_mysql_driver_instance());
//建立连接
con.reset(driver->connect("tcp://127.0.0.1:3306","root","")); if(con->isValid() == false)
{
cout<<"连接失败"<<endl;
return -;
} // 查询存储过程
prepareState.reset(con->prepareStatement("call test.testproc1(?)"));
prepareState->setInt(,);
prepareState->executeUpdate(); result.reset(prepareState->getResultSet());
// 输出结果
while(result->next())
{
int id = result->getInt("id");
string name = result->getString("name");
cout<<"testuser: "<< id <<" , "<<name<<endl;
} result->close();
prepareState->close();
con->close(); /*
result.reset(NULL);
prepareState.reset(NULL);
con.reset(NULL);
*/ _CrtDumpMemoryLeaks(); //_CrtDumpMemoryLeaks();
}
catch (sql::SQLException &e)
{
cout<<e.what()<<",state:"<<e.getSQLState()<<endl;
cout<<"errorCode: " << e.getErrorCode()<<endl;
} return ;
}
MySql C++调用库Connector/c++编译 和 接口封装【二】Connector/c++编译的更多相关文章
- MySql C++调用库Connector/c++编译 和 接口封装【三】Connector/c++ 使用总结及封装
工程需要加上各个路径: 库使用需要几个文件: 1.include 文件夹 c/c++ /常规/附加包含目录 Connector/c++ 的安装版里面的Include 文件夹.或者把 /driver以及 ...
- MySql C++调用库Connector/c++编译 和 接口封装【一】mysql数据库安装
Connector/c++库的源文件编译,你需要先准备好以下工具: mysql数据库(编译时要依赖),boost库,cmake(生成sln工程文件),connector/c++的源文件,vis ...
- MySQL从删库到跑路_高级(二)——自定义函数
作者:天山老妖S 链接:http://blog.51cto.com/9291927 一.自定义函数简介 自定义函数(user-defined function UDF)是一种对MySQL扩展的途径,其 ...
- mysql数据库从库同步延迟的问题
在从服务器上执行show slave status;可以查看到很多同步的参数,我们需要特别注意的参数如下,希望文章对各位会有所帮助. 在从服务器上执行show slave status;可以查看到很多 ...
- MySQL 实现调用外部程序和系统命令
MySQL 实现调用外部程序和系统命令 Refer:http://www.cnblogs.com/yunsicai/p/4080864.html1) Download lib_mysqludf_sys ...
- 友盟推送 .NET (C#) 服务端 SDK rest api 调用库
友盟推送 .NET SDK rest api 介绍 该版本是基于友盟推送2.3版本封装的,网上查询了下发现没有.NET版本的调用库,官方也没有封装.NET的版本,只有python.java.php版本 ...
- 信鸽推送 .NET (C#) 服务端 SDK rest api 调用库(v1.2)
信鸽推送 .NET 服务端 SDK rest api 调用库-介绍 该版本是基于信鸽推送v2版本的时候封装的,先拿出来与大家分享,封装还还凑合,不依赖其他http调用件,唯一依赖json序列化dll ...
- J2EE之oracle、mysql存储过程调用
最近几天在研究hibernate.JPA对存储过程的调用,主要是针对有返回结果集的存储过程的调用方法,个人感觉存储过程是个好东西,虽然说heibernate对数据访问封装的比较不错,再加上他的缓存机制 ...
- ECMall的MySQL数据调用的简单方法
很多ecmall开发者会问,怎么使用Ecmall的mysql类库进行数据调用.从原理上来讲Ecmall的数据调用是以数据模块+模块类库的方式进行mysql数据调用的,所有数据模块都存储在include ...
随机推荐
- C#Copy
1.浅拷贝(值类型): public class LightCopy { public int Val { get; set; } public LightCopy(int ival) { Val = ...
- 图解最小生成树 - 普里姆(Prim)算法
我们在图的定义中说过,带有权值的图就是网结构.一个连通图的生成树是一个极小的连通子图,它含有图中全部的顶点,但只有足以构成一棵树的n-1条边.所谓的最小成本,就是n个顶点,用n-1条边把一个连通图连接 ...
- 上传一个 游戏server架构图
- hibernate,动态更新,插入 dynamic-insert,dynamic-update 我有话要说 ---稍后整理
http://dreamzhong.iteye.com/blog/1207377 http://blog.csdn.net/hsuxu/article/details/8108326 @org.hib ...
- Spring cloud子项目
目前来说spring主要集中于spring boot(用于开发微服务)和spring cloud相关框架的开发,我们从几张图着手理解,然后再具体介绍: spring cloud子项目包括: Sprin ...
- Java:HttpClient篇,HttpClient4.2在Java中的几则应用:Get、Post参数、Session(会话)保持、Proxy(代理服务器)设置,多线程设置...
新版HttpClient4.2与之前的3.x版本有了很大变化,建议从http://hc.apache.org/处以得到最新的信息. 关于HttpCore与HttpClient:HttpCore是位于H ...
- cocos2d-x开发记录:二,基本概念(动作,动画,坐标系统)
既然我们选择用cocos2d,那么他里面的一些基本概念我们肯定是要熟悉下的,以下资料来源于官网,英语好的可以直接去官网看. 一.Actions(动作) 动作都由于CCNode对象发出.这些动作通常修改 ...
- NEXYS 3开发板练手--USB UART(三)
接着上一篇,今天我们来建立一个能用于实际工程中的DEMO. 首先,为了使我们的发送机不像上一个DEMO一样无节制的循环发送,我们需要修改代码,增加使发送机停止发送的控制部分,修改后的代码如下: `ti ...
- gitbook安装与使用
废话不说,直接主题: gitbook安装 =========== 1. 安装npm 从站点 https://nodejs.org/#download 下载node.js源码(点击绿色的INSTALL ...
- 【Linux】 无密码SCP在Crontab中失效的解决办法
一.缘由: 之前由于服务器只能密钥登陆,并限制root账户登陆,故用SSH打通了所有服务器,实现了公钥转发scp免输密码等,极大方便了服务器的管理. 最近有个需求,是做数据的异地备份.最简单的用scp ...