以线程为单位,对于Servlet而言,每一个线程共享一个Connection,放到与ServletConfig同范围、同生命周期的对象里,这样每一个线程都有一个独立的Connection,不会互相干扰,当前线程结束之后当前线程开辟的内存空间回收,这适合再关闭Connection。另外,事务处理要拿出来单独封装处理,不要使用自动事务。你提到的程序只是一个例子、范本,教科书上做练习用的,最好不要在实际项目中使用。

解决方案 »

  1.   

    错别字更正:这适合再关闭Connection --》 这时候再关闭connection。 -_-#
      

  2.   

    再如何封装到一个函数中,try,finally是少不了的。
    C++中可以使用一种RAII的技术,可惜在java中无法使用。
      

  3.   

    写一个QueryDAO,参数就是SQL串,所有的关闭在QueryDAO.execute()里面做。
    如果有别的特殊需要,再overload这个方法。