最近想写一个应用程序,要连接和操作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的更多相关文章

  1. Mysql使用终端操作数据库

      使用终端操作数据库       1.如何查看有什么数据库?     show databases;        2.如何选择数据库?    use databasesName;       3. ...

  2. MySQL—Dos命令操作数据库

    MySQL 是一个关系型数据库,存在表的概念 结构,数据库可以存放多张表,每个表可以存放多个字段,每个字段可以存放多个记录 Dos命令操作数据库 PhpStudy使用终端打开数据库 第一次打开默认的密 ...

  3. mysql一:操作数据库

    创建数据库是指在数据库空间中划出一块空间用来存储相关的数据,表就是存储在对应的数据库里面.首先来看下查看数据库的命令:show databases. 这个是用来查询数据库空间下所有的数据库,其中inf ...

  4. PHP mysql扩展整理,操作数据库的实现过程分析

    相关文章:PHP mysqli扩展整理,包括面向过程和面向对象的比较\事务控制\批量执行\预处理   PHPmysqli扩展整理,包括面向过程和面向对象的比较\事务控制\批量执行\预处理 从某种程度上 ...

  5. MySQL创建和操作数据库表demo

    [1]建立员工档案表要求字段:员工员工编号,员工姓名,性别,工资,email,入职时间,部门. [2]合理选择数据类型及字段修饰符,要求有NOT NULL,auto_increment, primar ...

  6. 使用navicat for mysql图形界面操作数据库、使用node.js操作数据库写接口

    1.先启动MYSQL服务 2.打开navicat for mysql, 点击链接,输入如下的内容: 3.新建数据表 4.数据库(新建一个db.js) //数据库链接配置 module.exports ...

  7. MySql笔记之操作数据库

    看前引导 ♦MySQL默认的端口号:3306 ♦MySQL中的超级用户:root ♦SQL语句结尾必须以分号结尾 ♦语法使用介绍 花括号  必须有的部分 中括号  可选项 ,可有可无 竖线  从这个当 ...

  8. mysql基础_操作数据库以及表

    1.数据库的操作 create database 数据库名:#一般创建方式 create database 数据库名 show databases;#查看所有数据 drop database 数据库名 ...

  9. mysql:SQL语句操作数据库中表和字段的COMMENT值

    转载:http://blog.163.com/inflexible_simple/blog/static/167694684201182601221758/ 参考文档不太给力啊,表注释和字段注释的资料 ...

随机推荐

  1. box-shadow用法简介

    语法: <strong>box-shadow:</strong><em><length></em><em><length& ...

  2. easyUI之datagrid

    对于easyUI中的datagrid组件,继承自pannel...,因此有其自己的组件,还有继承过来的属性. 1.width:指定其宽度 2.title:指定标题 3.iconCls:指定图标.见上图 ...

  3. 洛谷 P1068 分数线划定【结构体排序】

    题目描述 世博会志愿者的选拔工作正在 A 市如火如荼的进行.为了选拔最合适的人才,A 市对 所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试.面试分数线根 据计划录取人数的150%划 ...

  4. Codeforces 180C. Letter

    题目链接:http://codeforces.com/problemset/problem/180/C 题意: 给你一个仅包含大写字母和小写字母的字符串,你可以将让小写字母转化为大写字母,大写字母转化 ...

  5. ubuntu 进入 pycharm(社区版)

    先进入到pycharm所在的目录,然后进入bin 然后./pycharm.sh 例如,我把pycharm 放在桌面上 su ➜ xushukui cd '/home/xushukui/桌面/pycha ...

  6. 微信小程序开发教程(三)项目目录及文件构成

    第二章我们已经创建了一个Hello WXapplet示例小程序.我们从文件目录结构来了解Hello WXapplet项目的构成. 目录结构显示,在小程序项目的根目录下面包含3个app开头的文件(app ...

  7. Spoj Query on a tree III

    题目描述 给出N个点的一棵树(N-1条边),节点有白有黑,初始全为白 有两种操作: 0 i : 改变某点的颜色(原来是黑的变白,原来是白的变黑) 1 v : 询问1到v的路径上的第一个黑点,若无,输出 ...

  8. POJ 3293 Rectilinear polygon(几何基础)

    [题目链接] http://poj.org/problem?id=3293 [题目大意] 给出一些点,每个点只能向外引出一条平行X轴,和Y轴的边, 问能否构成一个闭多边形,如果能,返回多边形的总边长, ...

  9. [Contest20180316]Game

    这题有一个结论:如果他是最强的(⑨),那么线段树最优,如果他是最弱的,那么链状树最优 严格证明可能挺困难,感性理解就是公平赛制让强的人容易赢,极度不公平的赛制能让弱的人有机会反杀 所以我们只改他的能力 ...

  10. Problem P: 素数求和

    #include<stdio.h> int main() { ; scanf("%d",&n); n>=&&n<=; ;i<= ...