为什么使用数据库连接池
在系统中频繁的对数据库进行操作,就需要对数据库的操作方式进行考虑,因为数据库是IO操作,而IO操作是比较容易成为瓶颈的。
libzdb 简介
恰好在oschina看到了开源的数据库连接池,经过预研,可以满足我们的需求,所以就理所当然的使用了,感谢开源。 当然对于技术实力比较强的团队来说,可以会选择根据自己的需要去定制一个连接池。
首先介绍一下这个libzdb ; libzdb的官方说明的特性: Thread safe Database Connection Pool Connect to multiple database systems Zero runtime configuration, connect using a URL scheme Supports MySQL, PostgreSQL, SQLite and Oracle 补充:
缺点:不支持window,所以如果要是在windows下开发的时候可能不是很方便,但是libzdb的邮件列表反馈很及时,在列表中提出的问题,一般一两天就会得到官方的工程师的回答
它的几个相关网站如下: http://www.tildeslash.com/libzdb/# libzdb的offiCal website libzdb的代码使用googlecode上代管 https://code.google.com/p/libzdb/
当时的安装系统是redhatlinux ,直接下载代码编译安装 ./configure; make ; make install(当然可以在编译的过程中指定配置路径等) 当时的使用数据库环境为oracle11gr2 基本的使用可以参看源代码中的示例代码,在test目录下
基本使用方法:
基本的使用为:
在程序启动的时候,调用urlnew 和 connectpoolnew来初始化连接池
1、调用 connectionstart启动连接池
2、后面的就可以在线程中或者在具体的处理流程中调用getcon来获得连接,进而执行sql语句即可
3、在程序结束的时候要对应调用urlfree和connectionpoolfree来释放资源 上面就是对libzdb的基本介绍。
对这个库在工作中使用一段时间后,认为其在oracle下能够满足常用的需求,对常用数据类型的支持也较好。
需要注意的一点是:一定要注意字符编码一直的问题,否则就会由于编码的不同造成其在数据库操作过程中出现莫名其妙的问题。