日期:2014-05-20  浏览次数:20751 次

Thread中运用Connection的问题
最近合并一个项目到一个老项目中(甲方的人很无聊),不是用spring,基本上所有东西获取connection然后来通过一个封装的方法调用数据库。(很操蛋,返回的都是List<Map>,还不能返回pojo对象的List)

没办法 改吧。

现在遇到一个问题,那就是在线程中管理java.sql.Connection
java.sql.Connection他们也是要继承一个类才能获取。很无奈啊。

什么   this.getContext().getConn();

看过一个人的帖子,用构造方法传进去,但是后面越来越慢,应该是没有release掉。

我在想 如果通过构造方法的方式传递Connection对象,但是在外面已经close掉了。里面的connection时候为空呢?

public void mian (){
  try{
     Connection  con = this.getContext().getConn();
     x1Thread = new Thread(con);
  } finally {
     con.close();
  }
}

还有一个就是我在线程里面关掉Connection  会不会影响到其他的线程? 

小弟在此寻求方法如何在线程中对于connection有较好的管理。
thread 线程

------解决方案--------------------
创建线程的过程受你控制么?如果可以那么自己多封装一层吧。

也就是说你自己写的代码在最外层的 run() 函数,调用原来执行对象的 run() 函数;
public void run() {
    try {
         OldThread old  = new OldThread(con);
         old.run(); // 不是 start()
    } finally {
         con.close();
    }
}