注册 登录
编程论坛 J2EE论坛

关于数据库链接的创建

似水娇阳 发布于 2008-09-17 20:23, 1321 次点击
数据库链接一般如何获得,他的生命周期,最好如何控制,是每次执行完数据库操作就关闭还是跟着用户的SESSION跑!session创建就获的一个链接session失效然后关闭数据库链接。如何控制比较高效。大家谈谈
4 回复
#2
似水娇阳2008-09-17 20:25
还有就是大家如何都用同一个链接对象好不好,这样会不会产生并发或死锁的问题啊!
#3
zhong07111012008-11-03 17:07
我也想知道啊
#4
wyq032008-11-04 10:06
只是根据自己平常做项目的习惯和理解进行叙述,不一定准确,希望可以跟大家以前讨论.
session 一般用来做权限控制(传参压对象等).
默认的session 时间应该是是20分钟.可以在web.xml进行设置
方法:
<session-config>
    <session-timeout>15</session-timeout>
</session-config>
或在action 或servlet 中
方法:
session.setMaxInactiveInterval(XXX)
进行设置.

如果使用session(继承hibernate中持久化连接)用做数据连接控制的话.
一般使用方式为(我自己的习惯):
做查询时(单sql语句):
写一个单独的查询类:
public querylist(Stirng sql)
查询前获取session
返回结构后关闭session

做插入修改删除操作时:
写一个单独的操作类:
public executeSql(List<String> sql)//进行批量操作,如果失败可进行事物回滚.
{
  操作前获取session
   使用session的事物处理
   批量进行sql语句压入
   
   事物提交.
   session关闭.

}

虽然java用自带的session回收机制,不过作为一个合格的开发人员,我个人认为,还是应该控制好方法内的session.
另外数据库连接池(不管是hib还是iba)应该是做连接限制的(避免重复创建con而不关闭的情况而con的获得是从session获取).
#5
鼻涕虫2008-11-21 23:11
如果这样就加锁吧,虽然实现上比较复杂点,一般操作最多的是查询语句,所以加锁从很所方面来说是一种浪费,而且不能保证不出错,哎,这是一个数据库难题啊
1