请教,如何在自己的程序中关闭数据库?

tomorrower 2016-05-06 08:30:55
我在写webservice的实现类的时候,基本上都要连接数据库的,处理数据的时候如果碰到异常了,就要断开数据库,所以我总是在程序的前面就写了try,在最后catch后用finally里面关闭数据库
目的是防止程序异常退出了,数据库没有关闭

这样的做法合适吗

是不是在有可能异常的地方均放finally里面关闭数据库
...全文
126 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
vswen5 2016-05-06
  • 打赏
  • 举报
回复
或许包在try开销很大把 其实都没事啦 你可以用spring啊 交给框架帮你管理
奄灬苟且偷生 2016-05-06
  • 打赏
  • 举报
回复
我还以为LZ要关闭数据库的服务,这标题让你打的,原来你就是想断开连接,语文老师死的也太早了
tomorrower 2016-05-06
  • 打赏
  • 举报
回复
据说这样做的开销很大,每个try都需要额外的线程来监控
家里敷泥呀 2016-05-06
  • 打赏
  • 举报
回复
合理,一般资源关闭的工作都放在finally里面执行,即使没有申明式异常(避免运行时异常)。
键圣 2016-05-06
  • 打赏
  • 举报
回复
[quote=引用 3 楼 ch1240249252 的回复:] 我还以为LZ要关闭数据库的服务,这标题让你打的,原来你就是想断开连接,语文老师死的也太早了 就是我想说的,哈哈
tomorrower 2016-05-06
  • 打赏
  • 举报
回复
引用 4 楼 vswen5 的回复:
或许包在try开销很大把 其实都没事啦 你可以用spring啊 交给框架帮你管理
我用axis2部署的webservice,已经集成了spring,用来启动log4j的 请教如何用spring管理数据库连接?
tomorrower 2016-05-06
  • 打赏
  • 举报
回复
引用 3 楼 ch1240249252 的回复:
我还以为LZ要关闭数据库的服务,这标题让你打的,原来你就是想断开连接,语文老师死的也太早了
我只是要关闭数据库连接,瞧我这表达水平,见笑了 我是担心程序异常了,而数据库连接未能关闭
tomorrower 2016-05-06
  • 打赏
  • 举报
回复
引用 6 楼 hemowolf 的回复:
Java 的 WebService 一般都用到 servlet 建议借用 Hibernate 的思路,把数据库连接和当前线程进行绑定,就是把连接加到 ThreadLocal 里,这样一来,无论你在哪个地方想获取数据库连接,都可以找 ThreadLocal 要(写一个工厂类,为当前线程提供唯一的连接对象,如果当前线程没有,则创建一个并加到ThreadLocal 里,另外再提供关闭当前线程的连接的方法) 然后,在 servlet 中添加一个 Filter,拦截每一次 HttpRequest,在 doFilter 上加上 try{ filterChain.doFilter(....); }finally{ 关闭当前线程连接 }
我是java初学者,您能给一个这方面的例子吗?
小灰狼 2016-05-06
  • 打赏
  • 举报
回复
Java 的 WebService 一般都用到 servlet 建议借用 Hibernate 的思路,把数据库连接和当前线程进行绑定,就是把连接加到 ThreadLocal 里,这样一来,无论你在哪个地方想获取数据库连接,都可以找 ThreadLocal 要(写一个工厂类,为当前线程提供唯一的连接对象,如果当前线程没有,则创建一个并加到ThreadLocal 里,另外再提供关闭当前线程的连接的方法) 然后,在 servlet 中添加一个 Filter,拦截每一次 HttpRequest,在 doFilter 上加上 try{ filterChain.doFilter(....); }finally{ 关闭当前线程连接 }
chaser401 2016-05-06
  • 打赏
  • 举报
回复
直接关闭连接就好了

62,628

社区成员

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

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