mysql Connector C++ 操作数据库 vs2012
最近想写一个应用程序,要连接和操作mysql数据库,以前只是用c++ builder 操作过mysql数据库,那是用控件操作的,感觉比较弱智,但是c++ builder vcl控件感觉在多线程里比较坑,所以用vs2012做了。
c++连接mysql有两种方式,1是原始的方法,2是用 Connector c++ 。Connector c++ 只是一种封装,使之更加方便.本方只记下关于 Connector c++ 操作数据库。
想写一个demo 测试一下。
mysql connector c++ 调用 方式 有两种,一种是动态链接库调用 ,一种是静态库调用。静态库试了一整天不行,都是以 get_mysql_driver_instance() 没有链接到而靠终,后来才知道 新版本的connector c++ 如果以静态方式调用的话是不再用这个函数了 可是官方文档中没有说不用get_mysql_driver_instance这个函数是怎么操作数据库的。静态失败了,搞动态吧。
动态库调用方式是若干 .h 文件和一个 mysqlcppconn.lib 链接之后在运行期间会调用mysqlcppconn.dll貌似运行期间还要调用 libmysql.dll 。
下面说步骤
1.首先把把connector c++ include文件夹 加到工程包含目录里
2.其次链接lib 其中分为debug版和 release 版
#ifdef _DEBUG
#pragma comment(lib,"..\\dynamic_lib\\Debug_\\mysqlcppconn.lib")
#else
#pragma comment(lib,"..\\dynamic_lib\\Release_\\mysqlcppconn.lib")
#endif // DEBUG
3.直接调用函数了 ,以下代码测试正确 vs2012 win7 64位
// TestMySql.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include "mysql_connection.h"
#include "mysql_driver.h"
#include "mysql_error.h" #include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
#include <cppconn/prepared_statement.h> #include <iostream>
using namespace std; #ifdef _DEBUG
#pragma comment(lib,"..\\dynamic_lib\\Debug_\\mysqlcppconn.lib")
#else
#pragma comment(lib,"..\\dynamic_lib\\Release_\\mysqlcppconn.lib")
#endif // DEBUG int _tmain(int argc, _TCHAR* argv[])
{
sql::mysql::MySQL_Driver *driver = NULL;
sql::Connection *con = NULL;
driver = sql::mysql::get_mysql_driver_instance();
if(driver == NULL)
{
cout<<"driver is null"<<endl;
goto END;
}
con = driver->connect("tcp://localhost:3306", "root", "");
if(con == NULL)
{
cout<<"conn is null"<<endl;
goto END;
} cout<<"连接数据库成功"<<endl; sql::Statement * stmt = NULL;
stmt = con->createStatement();
if(stmt == NULL)
{
cout<<"stmt is null"<<endl;
goto END;
}
stmt->execute("SET CHARSET GB2312");
stmt->execute("USE zhanbao");
sql::ResultSet * resultSet = stmt->executeQuery("这里写查询语句 ");
int i = ;
while (resultSet->next()) {
cout << ", label = '" << resultSet->getString("ACCOUNT") << "'" << endl;
i++;
} cout<<"共"<<i<<"条"<<endl; con->close();
delete stmt;
delete con; END:
system("pause"); return ;
}
mysql Connector C++ 操作数据库 vs2012的更多相关文章
- Mysql使用终端操作数据库
使用终端操作数据库 1.如何查看有什么数据库? show databases; 2.如何选择数据库? use databasesName; 3. ...
- MySQL—Dos命令操作数据库
MySQL 是一个关系型数据库,存在表的概念 结构,数据库可以存放多张表,每个表可以存放多个字段,每个字段可以存放多个记录 Dos命令操作数据库 PhpStudy使用终端打开数据库 第一次打开默认的密 ...
- mysql一:操作数据库
创建数据库是指在数据库空间中划出一块空间用来存储相关的数据,表就是存储在对应的数据库里面.首先来看下查看数据库的命令:show databases. 这个是用来查询数据库空间下所有的数据库,其中inf ...
- PHP mysql扩展整理,操作数据库的实现过程分析
相关文章:PHP mysqli扩展整理,包括面向过程和面向对象的比较\事务控制\批量执行\预处理 PHPmysqli扩展整理,包括面向过程和面向对象的比较\事务控制\批量执行\预处理 从某种程度上 ...
- MySQL创建和操作数据库表demo
[1]建立员工档案表要求字段:员工员工编号,员工姓名,性别,工资,email,入职时间,部门. [2]合理选择数据类型及字段修饰符,要求有NOT NULL,auto_increment, primar ...
- 使用navicat for mysql图形界面操作数据库、使用node.js操作数据库写接口
1.先启动MYSQL服务 2.打开navicat for mysql, 点击链接,输入如下的内容: 3.新建数据表 4.数据库(新建一个db.js) //数据库链接配置 module.exports ...
- MySql笔记之操作数据库
看前引导 ♦MySQL默认的端口号:3306 ♦MySQL中的超级用户:root ♦SQL语句结尾必须以分号结尾 ♦语法使用介绍 花括号 必须有的部分 中括号 可选项 ,可有可无 竖线 从这个当 ...
- mysql基础_操作数据库以及表
1.数据库的操作 create database 数据库名:#一般创建方式 create database 数据库名 show databases;#查看所有数据 drop database 数据库名 ...
- mysql:SQL语句操作数据库中表和字段的COMMENT值
转载:http://blog.163.com/inflexible_simple/blog/static/167694684201182601221758/ 参考文档不太给力啊,表注释和字段注释的资料 ...
随机推荐
- 16.RDD实战
第16课:RDD实战 由于RDD的不可修改的特性,导致RDD的操作与正常面向对象的操作不同,RDD的操作基本分为3大类:transformation,action,contoller 1. Tra ...
- 12、Django实战第12天:课程机构列表页数据展示
今天完成的是课程机构列表页.... 1.启动服务,进入xadmin后,添加5个城市信息用作测试数据 2.添加课程机构,其中有一项要上传封面图的地方要注意 封面图上传路径是我们在models中设置好的 ...
- RabbitMQ (一) 简介和基本概念
原文:https://blog.csdn.net/vbirdbest/article/details/78577043 一.简介 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序 ...
- 详解jQuery的选择器
1.基本选择器 基本选择器是jQuery中最常用的选择器,也是最简单的选择器,它通过元素id.class和标签名等来查找DOM对象.在网页中,每个id名称只能使用一次,class允许重复使用. ♠ # ...
- lync项目总结
概述 9月份,由于公司人事变动,摆在自己面前也有两条路可选择,一是选择lync,二是选择sharepoint,由于之前,部门老大已经让我看了大概一个月的有关lync方面的资料(文档,代码,项目实施等) ...
- LNMP第二部分nginx、php配置
内容概要:一. nginx.confvim /usr/local/nginx/conf/nginx.conf //清空原来的配置,加入如下内容:user nobody nobody;worker_pr ...
- 反向传播BP为什么高效
之前有一篇文章讲了反向传播的原理: 下面这篇文章讲了反向传播为什么高效: https://blog.csdn.net/lujiandong1/article/details/52716726 主要通过 ...
- 使用Nmon监控Linux的系统性能
Nmon(得名于 Nigel 的监控器)是IBM的员工 Nigel Griffiths 为 AIX 和 Linux 系统开发的一款计算机性能系统监控工具.Nmon 可以把操作系统的统计数据展示在屏幕上 ...
- JS中map、forEach、filter、reduce等Array新增方法的区别
数组在各个编程语言中的重要性不言而喻,但是在之前的JavaScript中数组虽然功能已经很强大,但操作方法并不完善,在ECMAScript5中做了适当的补充. Array.isArray(elemen ...
- 项目笔记:导出Excel功能
1.前台这块: var ids=""; $.post("${basePath}/assets/unRegDeviceAction_getDeviceIds.do" ...