请教我的数据库链接该如何关闭!

xyflash 2009-06-20 11:11:26
技术:jsp + javabean 连接数据库采用Proxool连接池

方案一:
jsp页面先获取连接 并将连接传人相关bean 所有操作完成后 最后在jsp页面关闭连接...
Bean构思:
public int 名称1(连接对象,...) {
..... //相关操作
return ...;
}

public int 名称2(连接对象,...) {
..... //相关操作
return ...;
}


方案二:
jsp页面不出现连接 直接操作相关bean 在bean的相关操作中先获取数据库连接 然后再操作 操作完成后关闭...


Bean构思:
public int 名称1() {
//先创建连接
..... //相关操作
//关闭连接
return ...;
}

public int 名称2() {
//先创建连接
..... //相关操作
//关闭连接
return ...;
}


请问那种方案比较好...或者大家有好的方案说说也可以!!先放50分 不够再加!!!
...全文
128 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
xyflash 2009-07-31
  • 打赏
  • 举报
回复
关注!!!!!
xyflash 2009-07-21
  • 打赏
  • 举报
回复
我的技术要求是:jsp + javabean架构 连接数据库采用Proxool连接池

有没有更好的方案...谢谢
xyflash 2009-07-10
  • 打赏
  • 举报
回复
我的技术要求是:jsp + javabean架构 连接数据库采用Proxool连接池

有没有更好的方案...谢谢
ekowill 2009-07-07
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 xyflash 的回复:]
有没有更好的调用方案...
[/Quote]
最好办法,当然像spring一样容器自己动管理连接最好。
这样耦合度低。
用AOP方式,方法的Before getConnection opensession
方法after closesession closeconnection啊。
xyflash 2009-07-07
  • 打赏
  • 举报
回复
有没有更好的调用方案...
landyshouguo 2009-07-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 Johnson_Hong 的回复:]
第2种,至于频繁关闭打开的问题,连接缓冲池可以解决
[/Quote]ding
xyflash 2009-07-07
  • 打赏
  • 举报
回复
我的技术要求是:jsp + javabean架构 连接数据库采用Proxool连接池

有没有更好的方案...谢谢



对于spring还在学习着...
ekowill 2009-07-06
  • 打赏
  • 举报
回复
当然第二次好了,
第一次当你出现内存溢出,及数据连接数超出最大线程数时,
你才会明白第二种好了。
wine1 2009-07-06
  • 打赏
  • 举报
回复
分析得有道理
还是连接池好
lookupwtd 2009-07-06
  • 打赏
  • 举报
回复
第二种相对来说要好点,model1很少用了,从你的这个例子就可以看出model1的部分缺点
why_java 2009-07-05
  • 打赏
  • 举报
回复
第二种方法.!!
vicky_313789480 2009-06-26
  • 打赏
  • 举报
回复
为什么不在BEAN中增加一个关闭连接的函数,当不需要的时候,直接调用关闭的函数比较好吧?
xyflash 2009-06-26
  • 打赏
  • 举报
回复
以我这种架构 该如何使用数据库连接???

恳请大家给个思路
xyflash 2009-06-22
  • 打赏
  • 举报
回复
楼上的能否给个操作时的 调用示例!!
  • 打赏
  • 举报
回复
至于为什么不要这样做:

1,做的程序是应用程序,而不是 JDBC 框架;
2,由于不是专门做 JDBC 框架,所以在多线程请求、并发处理连接上不会严格地进行测试;
3,应用程序 DAO 层方法操作的最小粒度是 POJO 对象,而不是数据库连接对象;
4,将数据库连接对象作为参数传来传去的话,那么 DAO 将会严重与原始的 JDBC 进行耦合;
5,将连接对象作为成员变量时,在高并发请求状况下会产生大部分的数据库连接对象没有被回收掉。
到这里来问连接池占用直到耗尽的问题,基本上都是因为自作聪明地把连接对象设成了成员变量,而没
有很好地进行同步处理。
  • 打赏
  • 举报
回复
不要使用第一种方案;
不要将数据库对象作为参数传来传去;
不要将数据库对象作为成员变量!
xyflash 2009-06-21
  • 打赏
  • 举报
回复
c3p0我设置最多数据库连接时5个 可运行一会程序后 就出现了8个连接 似乎c3p0没有关闭的可能...
luffyke 2009-06-20
  • 打赏
  • 举报
回复
第二种好,低耦合!
hwhack 2009-06-20
  • 打赏
  • 举报
回复
第二种一般来说是要好点,但是你若想嵌套查询,你就用第一种,
因为第一种传一个connection连接,在第一种关闭的时候,把conn的值设为null,
再在另外一个方法里得到这个调用这个方法,前提是在conn=DriverManager.getConnection();后面,
最后在这个方法里关闭连接。
主要看楼主想要查询或是updata,看情况而定的。
shuai45 2009-06-20
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 xyflash 的回复:]
shuai45 提到的“律”是什么?能否解释下!
[/Quote]
是“率”不是“律”,偶打错了。你说的 “资源爆满,握手时间长” 是怎么具体 体现出来的。
加载更多回复(13)

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧