始终搞不懂的问题!!!

这个是初学jsp和MVC时做一个留言板过程中遇到的问题,当时花了很长时间也没有搞明白原因,最后只好先放弃搞别的了。

等学了大半年了再回过头来看这个问题,似乎有点眉目了,记得当时写数据库连接类的时候,不明白其中的设计原理,说白了就是不懂得系统的设计,结果这么简单一个类搞得我很郁闷,原本想找个经典的版本模仿下,后来却发现原来每个人写的都不一样,然后我就迷失在这众多的版本中了,最后在自己的系统中模仿了一个我自己都不太理解的写法,好像代码中还采用了单件模式和工厂模式。

就是这么个工具类导致我这个系统的数据库连接方面不断的出问题,我知道这肯定怨不得原作者,他这个类其实设计的是很牛B的,现在看来也的确是那么回事,可我那时侯没经验理解不到位,愣是不知道怎么去用这个类,开始的问题是我像每本书里讲的那样,遵守开闭原则,把宝贵的数据库连接用过之后马上就释放了,但事实却是往往当我还没用完的时候,不知道就在哪段代码中给关闭了,结果就出现了下面的问题。

后来我干脆把所有关闭数据库连接的代码都删除了,这倒是世界清静了,不再报错了,但是我心里清楚这代码写的分明有问题啊,数据库连接怎么能不关闭那?时间长了肯定要耗尽系统资源的啊,还有这要是一直不关闭,数据库连接池也起不到回收资源的作用啊。当时就是被这些问题困扰着,一直都没想明白。

 

回头得再把这个类研究研究,写个详细的说明。

 

java.sql.SQLException: org.apache.tomcat.dbcp.dbcp.DelegatingStatement with address: "com.mysql.jdbc.Statement@18bf072" is closed.
 at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.checkOpen(DelegatingStatement.java:137)
 at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:206)
 at org.database.DataStore.read(DataStore.java:151)
 at org.module.MInbox.getNewestMail(MInbox.java:50)
 at org.controller.Inbox.doGet(Inbox.java:47)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
 at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:834)
 at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:640)
 at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1286)
 at java.lang.Thread.run(Unknown Source)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值