比如说:
  登陆窗口时已经建立了连接。
主窗口调用数据时,必须要用到Statement对象。
才能用sqlexcuteQuery()方法。
求救如何解决这个问题。

解决方案 »

  1.   

    如果不是在一个事务里面,那面最好单独获得连接,单独获得自己的Statement.如果是事务,应该把连接传过去,或者从事务管理器里面获得。我想不出复用Statement的原因。
      

  2.   


    public abstract class DBUtil {    /**
         *  pooled connection
         *
         * @return java.sql.Connection
         * @exception SQLException
         */
        public static Connection getPooledConnection() throws SQLException {        
            Connection conn = null;
            try{
              java.util.Properties props = new java.util.Properties();
              props.put("user",     "ut");
              props.put("password", "ut");
              Driver myDriver =
                (Driver)Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
              return new YomiuriOracleConnectionWrapper(myDriver.connect("jdbc:oracle:thin:@//172.16.1.72:1521/orcl", props));
            } catch(Exception e){
              Debug.printToConsole("Exception:" + e);
              return null;
            } finally{
              if(conn != null){
            try{
              conn.close();
            } catch (Exception e){
              Debug.printToConsole("Exception:" + e);
            }
              }
            }
        }
    }