位置: 编程技术 - 正文
推荐整理分享介绍一个针对C++程序的MySQL访问库soci(请根据你的了解叙述c++的特点,c++对c有哪些发展),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:介绍一个针对女性的小型汽车怎么开头,请根据你的了解,叙述c++的特点及应用领域,对c++的看法,请根据你的了解,叙述c++的特点及应用领域,c++语言介绍,c++的例子,介绍一个针对女性的小型汽车怎么开头,c++的例子,内容如对您有帮助,希望把文章链接给更多的朋友!
一直以来,笔者都在不停寻找一种更人性化的数据库访问方式(并不是说默认的方式不好,而是有时候的确在模块化设计中不太方便)。后来有幸在php中找到codeigniter的ActiveReord,详细参考这篇文章: 抽离CodeIgniter的数据库访问类!然而c++却始终用着最原始的方式,昨天趁着项目要用的机会,在网上搜索了好久,总算让我找到两套c++的数据库访问框架:
soci litesql
两套代码我都拿下来看了一下,litesql实现了一套完整的代码自动生成,功能强大,但是也很重;soci相对要轻量,但是同样也实现了数据结构到数据库表的映射。本人还是比较喜欢轻量的东西,所以最终选择了soci。经过这两天的试用,感觉非常不错。
官方的文档也很详细,所以这里就用我写的单元测试代码来做一下简单的讲解:首先创建库表:
1.简单的select单条记录
select的结果,如果成功则ind会为i_ok,同值sex被赋值;如果失败则反之
2.简单的select多条记录
与select单条记录唯一的区别即,into()的参数是一个vector。其实用多个vector这种方式并不是一个很好的选择,后面会介绍基于数据结构的方式。
3.简单的insert
insert,update,delete都有两个同样的问题:a)affect_rows(操作的行数)没有办法返回b)操作的id无法知道,尤其对于insert的主键是自增的情况下,无法知道插入的主键的值是多少。
update和delete都与insert相似,这里就不再多说。
接下来是这个框架的很重要的一个特性,即数据库表与数据结构绑定:
首先我们需要定义一个结构体,并告知soci怎么让列名和数据结构的字段对应起来:
关于
这里,官方的文档是是有误的,我查了好长时间,按照上面的写法来写即可。
1.用数据结构来select
2.用数据结构来进行insert
整个就是这样~~下面是文中代码文件的下载路径:
简单解析MySQL中的cardinality异常 前段时间,一大早上,就收到报警,警告php-fpm进程的数量超过阈值。最终发现是一条sql没用到索引,导致执行数据库查询慢了,最终导致php-fpm进程数增
几个缩减MySQL以节省磁盘空间的建议 我们在工作中时常会遇到一些客户的TPSQPS都不太高,但磁盘占用非常大,一旦单实例空间太大,像内存、网络、CPU以及备份都将增加相应的开销。可能仅
MySQL中一些优化straight_join技巧 在oracle中可以指定的表连接的hint有很多:orderedhint指示oracle按照from关键字后的表顺序来进行连接;leadinghint指示查询优化器使用指定的表作为连接的首
标签: 请根据你的了解叙述c++的特点,c++对c有哪些发展
本文链接地址:https://www.jiuchutong.com/biancheng/347318.html 转载请保留说明!下一篇:简单解析MySQL中的cardinality异常(mysql -ne)
友情链接: 武汉网站建设