网上好多介绍ThreadLocal的帖子。
只是我一直不明白这样的一个问题:
在同一线程中,如果要用到两次Connection,要到第一次之后就将Connection关闭,
那么第二次使用Connection的时候不是还得重新去取得连接么,
用ThreadLocal的优势又体现在什么地方呢?我自己写的sample:
public static void main(String [] args){
  Connection conn = null;
  try{
    conn = DBManager.getSSCon();
    System.out.println("... conn hashcode: " + conn.hashCode());
    String sqlStr = "insert into dd_user(user_id,name,sex,age) values('4028d272059a4dee01059a4df3110005','name','M',10)";
    executeUpdate(conn,sqlStr);
    DBManager.closeConn();
    sqlStr = "insert into dd_user(user_id,name,sex,age) values('4028d272059a4dee01059a4df3110006','name','M',10)";
    conn = DBManager.getSSCon();
    System.out.println("... conn hashcode: " + conn.hashCode());
    executeUpdate(conn,sqlStr);
  }catch(SQLException e){
    e.printStackTrace();
  }finally{
    closeConn(conn);
  }
  System.out.println(" the end !");
}======================================打印出来的Connection的hashcode是不一样的,,,

解决方案 »

  1.   

    借贴子问问,请谁给解释一下ThreadLocal,我也不是太懂
      

  2.   

    这个问题应该通过connection cache解决吧?
      

  3.   

    而且,打印出来的hashcode不一样并不能说明什么,当你多次运行的时候生成的hashcode 是否相同根本没有什么特殊意义吧?期待高手解惑.
      

  4.   

    复合对象的hashcode是根据符合的对象的hashcode共同生成的,打印出来的hashcode应该不一样