JAVA数据库连接池。跨数据库开发实现!!

这是自己开发的一个数据库连接池,在设计时充分考虑的开发中效率,效果还是欢迎大家都来测试。
下载地址:http://down5.zol.com.cn/bbs_upload/upload/2006/03_28/1143531695286.rar

包中已经实现了Connection接口。开发时引用本包内的Connection类

特点:
 1、实现跨数据库平台:因为程序传递的参数一定的,但是各个数据库语句有很大差别。将SQL语句存放在文件外部(一般为properties文件)给与一个关键字。在程序中调用此关键字获得SQL语句。如果有参数可以使用?或者@@参数索引@@调用参数。这样非常方便更改SQL语句而不需要重新编译Class。如果都是?参数。可以用PreparedStatement调用。如果包含@@参数索引@@,通过包内的DynamicSQL调用
 例如:
 使用?:
  SQLServer.properties文件中
  authors = select * from authors where au_lname like ? and au_fname like ?
 
  在Java中
  Connection = ConnectionPools.getConnection();
  PreparedStatement ps = cn.createPreparedStatement(cn.getSQL("authors"));
  ps.setString(1,"h");ps.setString(2,"h");
  java.sql.ResultSet rs  = ps.executeQuery();

 使用@@索引@@
  SQLServer.properties文件中
  authors = select * from authors where au_lname like @@1@@ and au_fname like @@1@@

  在Java中
  Connection = ConnectionPools.getConnection();
  DynamicSQL ds = cn.getDynamicSQL("authors");
  ds.setString(1,"h");
  org.magus.sql.ResultSet rs = cn.executeQuery(ds);
  可以看出使用索引方式更灵活
 
  通过使用自定义的ResultSet。可以实现不需要引入java.sql.*包。该对象通过cn.executeQuery获得,参数可以为SQL语句,也可以是ds。但是自定义ResultSet执行的SQL语句(DynamicSQL)。只支持常用类型,例如数字、字符、时间。其他还是需要使用preparedStatement。

 2、启动缓存方式:在配置文件中设定cache=true。缓存中使用SQL语句和DynamicSQL作为键。将结果储存在缓存中,通过自己实现的ResultSet,并且不在常连数据库连接。使数据库利用更为合理,数据访问更快。也可以将PreaparedStatement生成的ResultSet缓存。不过需要做转换。org.magus.sql.ResultSet rs = new ResultSet(java.sql.ResultSet)。通过Connection.addCache(String key,ResultSet)存储,获得通过Connection.getCache(key)获得。Connection为org.magus.sql.Connection实例。
 3、自动清理选项:autoClear=true。设定此选项后。可以时时找出未被释放的连接,并加入到空闲连接池中。该选项主要作用是找到那些没有使用关闭操作的的Connection和Statement。使资源能及时释放。
 4、可自定义开发多种数据库,可以参考src目录下的org.magus.sql.database.DataBase。

配置说明:
 1、配置单例数据库:只需要在根目录下设置db.properties。这是默认的位置。调用直接用无参的

ConnectionPoosl.getConnection();调用
 2、配置多例数据库:需要pools.properties。在文件中指定多例数据库的文件路径
  例如:pools.properties
   db=/db.properties
   oralce=/oracle.properties
 3、数据库实例配置信息:例如db.properties
  Driver=数据库驱动
  Connection=连接字符串
  User=连接用户名
  Password=连接密码
  Type=数据库类型。在org.magic.sql.database下SQLServer和MySQL、Oracle中一个。也可

以自定义。
 //自动清理。注意启动自动清理会占用服务器端内存,并且可能会推迟一点访问时间。因为要遍历

一次连接池。
 autoClear=true
 //连接超时时间。在启动autoClear时有效
 timeOut=10000
 //Statement超时时间 在启动autoClear时有效
 stmtTimtOut=10000
 //启动缓存。缓存中保存的是ResultSet。是自己实现的ResultSet。避免和数据库常连。位于org.
 cache=true
 //清理时间间隔 在启动autoClear时有效
 time=10000
 //SQL语句存放路径,默认数据库类型.sql.properties
 SQLPath=/SQLServer.properties
 //最大连接数。默认无限制
 maxConnection=100
 //最大空闲数。默认无限制
 maxFree=-1
 //调试,显示信息
 debug=false

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值