Linux环境下Mysql++安装及操作深入详解
来源:互联网 发布:特勤精英 知乎 编辑:程序博客网 时间:2024/06/11 13:00
原文地址:
http://blog.csdn.net/laoyang360/article/details/52335669
题记:
之前项目中使用OTL连接操作Oracle数据库,对于Mysql有用,但没有总结。目前常用的两种连接方式:
方式一:mysql conncetor
(http://dev.mysql.com/downloads/connector/c/), mysql官网提供。
方式二:mysql++。
由于mysql connector我没有用过,不做评价。把mysql ++ 的优点列一下,对比mysql connector:
1)mysql++历史更悠久;
2)mysql++是第三方库;
3)mysql++编程风格:使用 使用原生的C++标准库和STL。而mysql conncetor更像JAVA风格。
4)mysql++更成熟。
原作者给出的比较:
http://www.zeuux.com/group/candcplus/bbs/content/55922/
本文主要详解:
Linux(确切是Centos)下msyql++的安装、增、删、改、查源码封装接口实现。
1、Mysql++作用
Mysql++是官方发布的、为MySQL设计的C++语言的API,这个API的作用是使工作更加简单且容易。
Mysql++为Mysql的C-Api的再次封装,它用STL开发并编写,并为C++开发程序员提供象操作STL容器一样方便的操作数据库的一套机制。
经常使用STL、OTL的朋友,使用起来会非常方便。
下载地址:https://tangentsoft.net/mysql++/
2、Mysql++安装步骤(CentOS release 6.5 (Final))
第1步:安装 libmysqlclient
- 1
- 2
libmysqlclient.so安装位置查看:
- 1
- 2
- 3
- 4
如上,从结果中可以看到libmysqlclient.so在/usr/lib64/mysql/目录下
第2步: 安装mysql3.2.3
1)解压:
mysql3.2.2 .tar.gz ,默认目录为:mysql++-3.2.3
2)配置
./configure –prefix=/usr/local –enable-thread-check –with-mysql-lib=/usr/lib64/mysql
3)编译
make
4)安装
make install
5)修改/etc/ld.so.conf文件,
添加如下内容:
- 1
- 2
- 3
- 4
至此,mysql++安装配置ok。
3、Mysql++操作
3.1 核心功能点:
1)通过Mysql++类库,连接Mysql。
2)实现对Mysql的增、删、改、查操作。
3.2 用户手册
API的详细介绍及使用Demo
http://tangentsoft.net/mysql++/doc/html/userman/
3.3 核心接口
MySql++支持三种查询: Query::execute(), Query::store(), Query::use()
1)execute( )接口
用于不返回数据的查询,该函数返回一个SimpleResult对象。
2)exec( )接口
它返回一个bool值,标示执行成功与否;如果只要成功与否的标识,可以使用该接口。
3)store() 接口
用于用服务器获取数据,该函数返回一个StoreQueryResult对象。对象包含了整个查询结果,使用stl::map方式从里面取数据即可。
4)use()接口
同样用于从服务器获取数据,不过该函数返回UseQueryResult对象。相比store()而言更节省内存,该对象类似StoreQueryResult,但是不提供随机访问的特性。use查询会让服务器一次返回结果集的一行。
Query对象的errnum()返回上次执行对应的错误代码,error()返回错误信息,affected_rows()返回受影响的行数。
3.4 实战源码实现:
1)test.cpp内容如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
2)makefile文件:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
3)执行结果如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
4、易出错点
1) /usr/bin/ld: cannot find -lmysqlclient
修正方法:Makefile文件中包含mysqlclient.so的路径:/usr/lib64/mysql。
2)程序初始编译出“segment fault” 调试方法
第1步:让core显示出来
编辑/root/.bash_profile文件,在其中加入 ulimit -S -c unlimited , 如下:
- 1
- 2
- 3
第2步:调试
gdb 可执行文件 core文件
gdb test core.10968
5、下一步工作
对mysql++如果可能的化,封装成自己常用的类。目前已经基本相对清晰。
此文章能正确的装好mysql++,快速方便的访问mysql,之前也是做一个win移植到linux项目用到此处,感谢楼主的分享。
- Linux环境下Mysql++安装及操作深入详解
- Linux环境下Mysql++安装及操作深入详解
- Linux环境下配置MySQL及相关操作
- linux环境下mysql数据库的安装配置及使用
- linux环境下,mysql UDF的实现编译及安装
- Linux环境下Mysql的安装及简单使用
- linux下安装mysql详细步骤及基本操作
- linux环境下安装mysql
- Linux环境下安装MySQL
- Linux环境下安装mysql
- linux环境下安装mysql
- Mysql-linux环境下安装
- linux 环境下安装mysql
- Linux环境下安装MySQL
- Linux下Mysql安装详解
- Linux下安装mysql详解
- Linux下MySQL安装详解
- Linux环境下安装MySQL|Linux下Mysql安装教程
- String、StringBuffer和StringBuilder的区别
- 3种页面加载完成后再执行JS的jquery写法以及区别说明
- 【Android】Realm详解(Android 数据库Sqlite的完美替代者)
- 第三周 项目二建设“顺序表”算法库
- 基础JVM垃圾回收工作原理
- Linux环境下Mysql++安装及操作深入详解
- 第三周项目2-建设“顺序表”算法库
- 软件需求工程 课堂笔记3
- FFMPEG使用参数详解
- 诸暨东白湖镇下水道疏通-24小时专业服务
- 盘点:如何将cad转换成pdf文件的方法汇总
- string 不可变类
- 题目1057:寻找最大数(三)
- 澳洲社区宜居指数:首都第一西澳垫底