问一个关于db connection和resultSet的close问题

04-02-09 jaghuang
在我的理解来说,conn.close()和rs.close()这两个function在我们每次使用完conn和rs后都有关闭的必要。在考虑到另一个问题的时候出现了一点矛盾。当一个大功能的实现需要连接很多次数据库的时候,如果每次都开一个connection的话,觉得似乎是一种浪费而且速度会慢。所以最好是在一个大功能中全部都使用一个connection,多个resultSet。那么,当open了一个connection后,自然在使用完后在最后要把它close。这个没问题,存在的问题是在多个rs.close(),如果在每个rs使用完后都关闭的话,那么意思就是在每一个使用rs实现的大功能中的小功能都要加一句rs.close(),那么这个rs.close()加在哪一层中呢?似乎只能加在使用了这个rs的逻辑层中(可以想象一下实现数据显示的某个javabean),那么,rs.close就不在最后的数据层中关闭了,这似乎不太符合mvc的概念,大家在做数据的时候,是使用怎么一种方法呢?是多次connection还是一次connection?如何实现?

windjp
2004-02-09 17:55
应该是一个connection,一个问题是,多个connection能做事务嘛?

我的思路是,在每次调用服务时开启连接,通过参数传地连接,调用结束后关闭,可以考虑和session facade模式配合

jaghuang
2004-02-09 18:04
问题是rs.close,我想知道的是这个

windjp
2004-02-09 18:46
还是不太明白你的意思,rs的关闭和mvc有什么联系呢?

rs应该是每次取得要用的数据后就关闭吧,connection则应当在事务完成之后关闭,数据的返回应当通过value object.

如果建立了session facade,则一个用例对应一次数据库连接。

jaghuang
2004-02-09 19:54
或许我是有点贪心,我希望做到的是所有连接数据的rs都只是通过一个function来得到,所以就需要考虑多种情况了。

猜你喜欢
3Go 1 2 3 下一页