vs2013,mysql connector

安装版的mysql connector c++ 不能用来连接,只好重新编译

需要下载mysql-connector-c++-1.1.3,mysql-connector-c-6.1.5-src,boost_1_55_0, cmake
(1):

编译mysql-connector-c-6.1.5-src
cmake -G "Visual Studio 12"

用vs2013编译完成


(2):编译mysql-connector-c++-1.1.3
set  MYSQL_DIR=D:\Program Files\MySQL\MySQL Connector C 6.1

set BOOST_ROOT=D:\Program Files (x86)\boost_1_55_0

cmake -G "Visual Studio 12"

用vs2013编译完成


经过上面两部就会生成libmysql.lib、libmysql.dll、mysqlcppconn.dll、mysqlcppconn.lib, mysqlcppconn-static.lib

这个就可以做开发了,最后贴一个测试的列子

#include <iostream>

#include <memory>
#include <string>
#include <cppconn\driver.h>
#include <cppconn\exception.h>
#include <cppconn\resultset.h>
#include <cppconn\statement.h>
#include <cppconn\prepared_statement.h>

static const char*  g_sqltrance = "";//"d:t:O,client.trace";
static const int    g_enable_debug_trace = 0;

int main()
try
{

	std::cout << "connect db start ... \n";
	auto driver = get_driver_instance();

	std::unique_ptr<sql::Connection> con(driver->connect("tcp://127.0.0.1:3306", "root", "123456"));
	con->setClientOption("libmysql_debug", g_sqltrance);
	con->setClientOption("clientTrace", &g_enable_debug_trace);
	con->setSchema("test");

	// create table
	std::unique_ptr<sql::Statement> stmt(con->createStatement());
	stmt->execute("drop table if exists test");
	stmt->execute("create table test(id int, label char(1))");

	// insert
	stmt->execute("insert into test(id, label) values (1, 'a')");
	stmt->execute("insert into test(id, label) values (2, 'b')");
	stmt->execute("insert into test(id, label) values (3, 'c')");

	// update
	stmt->executeUpdate("update test set label='e' where id=2");

	// prepared statement
	std::unique_ptr<sql::PreparedStatement> prep_stmt(con->prepareStatement("insert into test(id, label) values(?, ?)"));
	size_t n = 5;
	while (n++ < 30)
	{
		prep_stmt->setInt(1, n);
		prep_stmt->setString(2, sql::SQLString(std::string(1, 'A' + n)));
		prep_stmt->execute();
	}

	// query
	std::unique_ptr<sql::ResultSet> res(stmt->executeQuery("select id, label from test order by id asc"));
	while (res->next())
	{
		std::cout << "id = " << res->getInt(1) << "  label = " << res->getString("label") << "\n";
	}

	return 0;
}
catch (sql::SQLException & e)
{
	std::cout << "SQLException : \n    "
		<< e.what()
		<< "\n    ErrorCode " << e.getErrorCode() << " "
		<< "\n    SQLState " << e.getSQLState() << "\n";
}
catch (...)
{
	std::cout << "uncatch exception\n";
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值