【原创】2. MYSQL++之Connect类型
mysqlpp:: Connect类型主要负责连接事宜,这是在所有开始mysql操作之前必须进行的(这是句废话)。
该类型的主要的结果如下所示

mysqlpp::OpeitonalExceptions
通过查看源码,我看到OptionalExceptions就是一个对于一个表示“是否需要抛出异常”的变量的包装。在Connection类型的内容,会在出现错误的时候调用OpetionalExceptions.throw_exceptions( )方法来查看是否需要使用异常的手段来表示错误。
mysqlpp::Connection
这个类型是用户程序能够看到的少数几个类型,它所包含的主要的方法就是“连接”,“断开连接”,“创建某个数据库",”drop某个数据库“(此二者是通过CREATE DATABASE和DROP DATABASE实现的),”查看某张 table 中的数据行数“,”关闭mysql服务等操作“。
同时,该类型也可以返回一个mysqlpp::Query类型,该类型主要负责查询操作。另外,当我们以后看到mysqlpp::Query的时候,我们很容易发现它的构造函数必定需要一个mysqlpp::Connection,也就是说mysqlpp::Query的所有操作,其实也就是再次调用mysqlpp::Connection的对应方法,后者再去调用mysqlpp::DBDriver来做真正的数据库操作。
需要注意的是,Connection其实就是一个代理类型,所有的和数据库进行操作的非查询类动作(包括了连接,查看连接是否还在,MYSQL的操作出错的错误信息和错误号,通信方式(ipc_info方法),选择当前DB)都是交给mysqlpp::DBDriver来做的。他才是真正的执行者。
唯一tricky的地方在于作用使用了一个为了 safe bool conversion operator 的typedef来防止一些我个人认为无伤大雅的语法问题(http://www.artima.com/cppsource/safebool.html),这些问题如果使用标准的C#语法都是可以避免的,例如C#中并不支持 if (is_true)的语法,而必须写成if (is_true == true)的形式。
原创作品,转载请注明出处www.cnblogs.com/aicro。
【原创】2. MYSQL++之Connect类型的更多相关文章
- MYSQL++之Connect类型
原文转自:www.cnblogs.com/aicro mysqlpp:: Connect类型主要负责连接事宜,这是在所有开始mysql操作之前必须进行的(这是句废话). 该类型的主要的结果如下所示 m ...
- 【原创】MYSQL++源码剖析——前言与目录
终于完成了! 从第一次想写到现在真的写好大概花了我3个月时间.原来一直读人家的系列文章,总感慨作者的用心良苦和无私奉献,自己在心里总是会觉得有那么些冲动也来写一个. 最开始的麻烦是犹豫该选哪个主题.其 ...
- 解决python写入mysql中datetime类型遇到的问题
解决python写入mysql中datetime类型遇到的问题 刚开始使用python,还不太熟练,遇到一个datetime数据类型的问题: 在mysql数据库中,有一个datetime类型的字段用于 ...
- mysql中geometry类型的简单使用
mysql中geometry类型的简单使用 编写本文的目的: 让和两天前的我一样的初学者,能够更快的使用geometry类型存储空间点数据 也是为了自己加深印象,更熟练的使用geometry类型 ...
- MySQL 常见索引类型介绍
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. MySQL 主要索引类型有如下几种: 1.主键索引 2.唯一索引 3.普通索引 4.空间索引 5.全文索引 假设有如下一张 ...
- mysql中boolean类型
MYSQL保存BOOLEAN值时用1代表TRUE,0代表FALSE,boolean在MySQL里的类型为tinyint(1), MySQL里有四个常量:true,false,TRUE,FALSE, ...
- MYSQL中 ENUM 类型
MYSQL中 ENUM 类型的详细解释 ENUM类型 ENUM 是一个字符串对象,其值通常选自一个允许值列表中,该列表在表创建时的列规格说明中被明确地列举. 在下列某些情况下,值也可以是空串(&quo ...
- 如何正确选择MySQL数据列类型
MySQL数据列类型选择是在我们设计表的时候经常会遇到的问题,下面就教您如何正确选择MySQL数据列类型,供您参考学习. 选择正确的数据列类型能大大提高数据库的性能和使数据库具有高扩展性.在选择MyS ...
- mysql的text类型长度问题
在我的概念中,mysql中的text字段应该是没有长度限制的,但是今天事实告诉我,text类型的长度是有限制的.其中mysql的text类型有64K长度限制的,MEDIUMTEXT中型是2G,LONG ...
随机推荐
- js类 的小例子
class Flyer { constructor(fname, speed) { this.fname = fname; this.speed = speed; } fly(){ console.l ...
- HihoCoder1127 二分图三·二分图最小点覆盖和最大独立集
二分图三·二分图最小点覆盖和最大独立集 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在上次安排完相亲之后又过了挺长时间,大家好像都差不多见过面了.不过相亲这个事不是说 ...
- HihoCoder 1185 : 连通性·三(强连通缩点)
连通性·三 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 暑假到了!!小Hi和小Ho为了体验生活,来到了住在大草原的约翰家.今天一大早,约翰因为有事要出去,就拜托小Hi ...
- linux之使用samba实现文件共享
早期网络想要在不同主机之间共享文件大多要用FTP协议来传输,但FTP协议仅能做到传输文件却不能直接修改对方主机的资料数据,这样确实不太方便,于是便出现了NFS开源文件共享程序,NFS是一个能够将多台L ...
- bzoj 3052 糖果公园
Written with StackEdit. Description \(Candyland\) 有一座糖果公园,公园里不仅有美丽的风景.好玩的游乐项目,还有许多免费糖果的发放点,这引来了许多贪吃的 ...
- 51nod 1298 圆与三角形
给出圆的圆心和半径,以及三角形的三个顶点,问圆同三角形是否相交.相交输出"Yes",否则输出"No".(三角形的面积大于0). 输入 第1行:一个数 ...
- imageView添加阴影和边框
注意:大量设置阴影会造成卡顿!!! 用上这句之后流畅度大大增加:imageV.layer.shouldRasterize = YES; 例: // 设置阴影 imageV.layer.shadowOf ...
- [樹莓派]用mkusb来制作U盘启动安装Ubuntu 15.04
之前實踐過這文章的描述,還可以成功:http://www.linuxdiyf.com/linux/12719.html,轉記錄餘下: 官方英文文档,教你在Ubuntu 15.04下使用mkusb来制作 ...
- ②SpringBoot之Web综合开发
Spring boot初级教程 :<SpringBoot入门教学篇①>,方便大家快速入门.了解实践Spring boot特性,本文介绍springBoot的web开发 web开发sprin ...
- dockerfile初试之tomcat8封装
前面学习了一些docker相关资料,有看到dockerfile这个东东,一时没看得太明白,理论给合实践是最好的学习方法,自己做一下就行了嘛.主要步聚记录如下: 0)环境 10.202.105.96 ...