mysql connector 教程_MySQL Connector/C++入门教程(上)

目录

MySQL C++ Driver的实现基于JDBC4.0规范

安装MySQL Connector/C++

运行时依赖

C++ IDE

为示例程序创建数据库与数据表

使用Connector/C++测试数据库连接

使用prepared Statements

使用事务

访问Result Set Metadata

访问Database Metadata

通过PreparedStatment对象访问参数元数据

捕获异常

调试/跟踪 MySQL Connector/C++

更多信息

MySQL C++ Driver的实现基于JDBC4.0规范

MySQL Connector/C++是由Sun Microsystems开发的MySQL连接器。它提供了基于OO的编程接口与数据库驱动来操作MySQL服务器。

与许多其他现存的C++接口实现不同,Connector/C++遵循了JDBC规范。也就是说,Connector/C++ Driver的API主要是基于Java语言的JDBC接口。JDBC是java语言与各种数据库连接的标准工业接口。Connector/C++实现了大部分JDBC4.0规范。如果C++程序的开发者很熟悉JDBC编程,将很快的入门。

MySQL Connector/C++实现了下面这些类:

Driver

Connection

Statement

PreparedStatement

ResultSet

Savepoint

DatabaseMetaData

ResultSetMetaData

ParameterMetaData

Connector/C++可用于连接MySQL5.1及其以后版本。

在MySQL Connector/C++发布之前,C++程序员可以使用MySQL C API或者MySQL++访问MySQL。前者是非标准、过程化的C API,后者是对MySQL C API的C++封装。

安装MySQL Connector/C++

此处略。(译者注:用户可以到MySQL的官网[http://dev.mysql.com/downloads/connector/cpp/1.0.html]去下载MySQL Connector/C++的安装程序,或者只下载dll,或者下载源代码自己编译。笔者在Window平台上使用MySQL,下载了mysql-connector-c++-noinstall-1.0.5-win32这个版本用于调试。)

运行时依赖

MySQL Connector/C++ Driver依赖MySQL的客户端库,在MySQL安装目录下的lib\opt\libmysql.dll。如果是通过安装程序来安装MySQL Connector/C++,libmysql会一并安装,如果从官网只下载了dll或源码,在使用时,程序必须链接到libmysql.dll。

C++ IDE

此处略。(译者注:原文作者使用NetBean作为C++的IED。笔者使用VS2008)

为示例程序创建数据库与数据表

(译者注:此节略掉许多不太重要的内容。)在MySQL中创建test数据库,使用下面语句创建数据表:City:

Create Table: CREATE TABLE `City` ( `CityName` varchar(30) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=ascii

然后向City表中添加一些数据。最后表的内容为:

mysql>SELECT * FROM City;

+--------------------+

| CityName |

+--------------------+

| Hyderabad, India |

| San Francisco, USA

|

| Sydney, Australia |

+--------------------+

3 rows in set (0.17 sec)

使用Connector/C++测试数据库连接

下面的代码演示如何使用Connector/C++连接到MySQL服务器:

连接到test数据库;

执行一个查询获取City表中的数据,显示在控制台上;

使用Prepared Statements向City表插入数据;

使用savepoints演示事务;

获取结果集和数据库的元信息;

例子代码仅仅用于演示,不建议读者在实际开发中使用这种样式的代码。(译者注:例子代码很长,如果看不太明白,没关系,等阅读完全文之后再回过头来看)

#include

#include

#include

#include

#include "mysql_driver.h"

#include "mysql_connection.h"

#include "cppconn/driver.h"

#include "cppconn/statement.h"

#include "cppconn/prepared_statement.h"

#include "cppconn/metadata.h"

#include "cppconn/exception.h"

#define DBHOST "tcp://127.0.0.1:3306"

#define USER "root"

#define PASSWORD "000000"

#define DATABASE "test"

#define NUMOFFSET 100

#define COLNAME 200

using namespace std;

using namespace sql;

#pragma comment(lib, "mysqlcppconn.lib")

void Demo();

int main(int argc, char *argv[])

{

Demo();

return 0;

}

/* 获取数据库信息 */

static void GetDBMetaData(Connection *dbcon)

{

if (dbcon->isClosed())

{

throw runtime_error("DatabaseMetaData FAILURE - database connection closed");

}

cout << "\nDatabase Metadata" << endl;

cout << "-----------------" << endl;

cout << boolalpha;

/* The following commented statement won't work with Connector/C++ 1.0.5 and later */

//auto_ptr < DatabaseMetaData > dbcon_meta (dbcon->getMetaData());

DatabaseMetaData *dbcon_meta = dbcon->getMetaData();

cout << "Database Product Name: " << dbcon_meta->getDatabaseProductName() << endl;

cout << "Database Product Version: " << dbcon_meta->getDatabaseProductVersion() << endl;

cout << "Database User Name: " << dbcon_meta->getUserName() << endl << endl;

cout << "Driver name: " << dbcon_meta->getDriverName() << endl;

cout << "Driver version: " << dbcon_meta->getDriverVersion() << endl << endl;

cout << "Database in Read-Only Mode?: "

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值