SOCI、LiteSQL、POCO数据库访问类库对比
2014-03-26 14:42
218 查看
最近在做视频的开发,其中视频的设备接入管理服务器、流媒体管理服务器、中心服务器都涉及到了数据库的操作,同时需要兼容大多数版本的数据库,包括mysql、sqlite、oracle。公司原来使用的是ado来进行数据库的开发的, 但是考虑到目前需要兼容linux,目前使用Poco框架封装的数据库模块进行开发。
根据项目情况我对soci、litesql、poco这三个框架进行了简单的学习来确定选择那个框架。
1.soci
soci是c++数据库访问类库,目前支持MySQL、Oracle、PostgreSQL、SQLite、MS SQL、FireBird。
soci github:https://github.com/SOCI/soci
soci Website:http://soci.sourceforge.net
soci是一个需要自己下载源码后编译的库,编译方法可以参看源码中的doc文件夹下的installation.html文件。编译注意事项可以参看博客/article/1458503.html
下图是installation中截取的一部分编译的内容:
2.litesql
liteSQL是一个C++数据库持久层框架,支持SQLite3、MySQL、PostgreSQL;
litesql是一个C++的ORM(对象关系映射)操作数据库的框架
litesql website:http://sourceforge.net/apps/trac/litesql/
注:litesql与soci对比
a.
litesql是一个ORM框架。使用上一般是根据给定格式将数据库信息写入xml中,在用litesql提供的工具生成.cpp、.h文件。
soci是用泛型算法为sql访问做了一层封装。需要通过写sql语句来完成数据库操作。
b.
litesql不支持access、sqlserver的,soci支持odbc,所以soci支持ms下的相关的一系列东西。
c.
litesql需要学习成本,同时对于初学者来说不太方便调试
根据项目情况,我起初选择了soci,但是soci相关的文档极少,不同版本的soci估计生成动态链接库的方式不太一致,生成动态链接库不是很方便,故放弃了soci
3.Poco
其实Poco是一个C++库,类似Boost,但是比Boost封装更完善,在这块儿介绍Poco,是因为最终选定的方案是采用Poco中的数据库操作访问类库(SQLite、Mysql、ODBC)来进行数据库的开发。
Poco的数据库访问类库参照的是soci,但是比Soci有更多的文档去学习,同时生成各种版本的lib文件很简单。
Poco website:http://www.libpoco.com/
Poco文档:http://www.libpoco.com/site/info/
下图是Poco库的概览图,我们操作数据库使用的是下图红框中的Data接口以及MySQL、SQLite、ODBC的模块进行开发。
根据项目情况我对soci、litesql、poco这三个框架进行了简单的学习来确定选择那个框架。
1.soci
soci是c++数据库访问类库,目前支持MySQL、Oracle、PostgreSQL、SQLite、MS SQL、FireBird。
soci github:https://github.com/SOCI/soci
soci Website:http://soci.sourceforge.net
soci是一个需要自己下载源码后编译的库,编译方法可以参看源码中的doc文件夹下的installation.html文件。编译注意事项可以参看博客/article/1458503.html
下图是installation中截取的一部分编译的内容:
2.litesql
liteSQL是一个C++数据库持久层框架,支持SQLite3、MySQL、PostgreSQL;
litesql是一个C++的ORM(对象关系映射)操作数据库的框架
litesql website:http://sourceforge.net/apps/trac/litesql/
注:litesql与soci对比
a.
litesql是一个ORM框架。使用上一般是根据给定格式将数据库信息写入xml中,在用litesql提供的工具生成.cpp、.h文件。
soci是用泛型算法为sql访问做了一层封装。需要通过写sql语句来完成数据库操作。
b.
litesql不支持access、sqlserver的,soci支持odbc,所以soci支持ms下的相关的一系列东西。
c.
litesql需要学习成本,同时对于初学者来说不太方便调试
根据项目情况,我起初选择了soci,但是soci相关的文档极少,不同版本的soci估计生成动态链接库的方式不太一致,生成动态链接库不是很方便,故放弃了soci
3.Poco
其实Poco是一个C++库,类似Boost,但是比Boost封装更完善,在这块儿介绍Poco,是因为最终选定的方案是采用Poco中的数据库操作访问类库(SQLite、Mysql、ODBC)来进行数据库的开发。
Poco的数据库访问类库参照的是soci,但是比Soci有更多的文档去学习,同时生成各种版本的lib文件很简单。
Poco website:http://www.libpoco.com/
Poco文档:http://www.libpoco.com/site/info/
下图是Poco库的概览图,我们操作数据库使用的是下图红框中的Data接口以及MySQL、SQLite、ODBC的模块进行开发。
相关文章推荐
- 曲苑杂坛--数据库更新探秘
- mysql 强大的trim() 函数
- Oracle的REDO和UNDO
- MongoDB整合Spring 详细讲解(含代码)
- ibatis There is no statement named XXX in this SqlMap
- Oracle报 ORA-00054资源正忙的解决办法
- 不用工具生成数据库字典
- mongodb进阶(3):复制的认证和oplog
- 从alert_SID.log看Oracle数据库启动三阶段
- oracle监控语句
- 64 位操作系统(win2008,win 8) 是可以安装 SQL 2000
- MySQL表的四种分区类型
- mysql分表的3种方法
- mysql分区功能详细介绍,以及实例
- mysql分表,分区的区别和联系
- Linux下安装配置Redis
- Sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法
- 监控Cacti+Nagios+NagiosQl+NagVis+Pnp4nagios整合 推荐
- mongodb的java驱动与spring的整合
- amoeba for mysql 使用日志