yangzi:
定义为静态变量,可是我在哪里给它赋值呢?
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
m_conn = DriverManager.getConnection(m_strURL, m_strUserName, m_strPassword);
stmt = m_conn.createStatement();
我应该写在哪里?

解决方案 »

  1.   

    1.不用定义为static也可以
    2.构造函数中
      

  2.   

    写在构造函数中,岂不是会建立多个Statement吗?
      

  3.   

    而且,Static变量的初始化先于构造函数吧?
      

  4.   

    了解一下什么叫 Singleton模式,是解决你这种问题的最佳方案。
    例子如下:public class SingleStatement {
      private Statement stmt = null;
      private static SingleStatement ssptr = new SingleStatement();  private SingleStatement() {}  // 注意,构造函数一定要是private  public Statement getStatement() {    return stmt;  }  public void setStatement(Statement st) {    stmt = st;  }  public static SingleStatement getInstance() {    return ssptr;  }
    }使用例子:
    public class UseSingleton {
      public static void main(String[] args) {
        SingleStatement s = SingleStatement.getInstance();
        ........
        s.setStatement(yourstatment);    // 设置全局的Statement
        .........    SingleStatement s1 = SingleStatement.getInstance(); // 实际上这里得到的是同一个SingleStatement 对象
        Statement st = s.getStatement();    // 这里得到的Statement 就是最开始设置的Statement
        ...........
      }
    }