import java.sql.*; import javax.swing.JOptionPane;public class ConnectDB{ 
public void connectData() 

Connection con = null;
Statement st = null;
try

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
String url="jdbc:odbc:Driver={MicroSoft Access Driver             (*.mdb)};DBQ=E:\\EclipseWS\\AddressList\\source\\DB.mdb"; 
con = DriverManager.getConnection(url,"amin","admin"); 
st = con.createStatement();  //如何把这个获得的st传给同一工程下的另外一个
                                                            //类login,ResultSet rs = st.excuteQuery("");
                                                    //来获取数据库的用户名。
}catch(Exception ex)

  JOptionPane.showMessageDialog(null , "数据库连接错误"+"SQL exception:" + ex.getMessage() , "Error" , JOptionPane.ERROR_MESSAGE);



}如何实现这个功能,不知道哪位大哥能提供这个代码。

解决方案 »

  1.   

    不明白想用这statement来做什么,但是这样应该能够实现
    public class ConnectDB{ 
        public static Statement st = null;    static{ 
            Connection con = null;
                    try
            { 
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
                String url="jdbc:odbc:Driver={MicroSoft Access Driver             (*.mdb)};DBQ=E:\\EclipseWS\\AddressList\\source\\DB.mdb"; 
                con = DriverManager.getConnection(url,"amin","admin"); 
                st = con.createStatement();  
            }catch(Exception ex)
                { 
                  JOptionPane.showMessageDialog(null , "数据库连接错误"+"SQL exception:" + ex.getMessage() , "Error" , JOptionPane.ERROR_MESSAGE);
                } 
        } 
    }
    不知道这么实现是否能满足要求。
      

  2.   

    为什么不用类的封装来实现呢?import java.sql.*; import javax.swing.JOptionPane;public class ConnectDB{ 
        private Connection con=null;
        private Statement st=null;
        public void connectData() 
        { 
          
            try
            { 
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
                String url="jdbc:odbc:Driver={MicroSoft Access Driver             (*.mdb)};DBQ=E:\\EclipseWS\\AddressList\\source\\DB.mdb"; 
                con = DriverManager.getConnection(url,"amin","admin"); 
                st = con.createStatement();  //如何把这个获得的st传给同一工程下的另外一个
                                                                //类login,ResultSet rs = st.excuteQuery("");
                                                        //来获取数据库的用户名。
            }catch(Exception ex)
                { 
                  JOptionPane.showMessageDialog(null , "数据库连接错误"+"SQL exception:" + ex.getMessage() , "Error" , JOptionPane.ERROR_MESSAGE);
                } 
        
        } 
       public statement getSt(){
         return st;
           
       }
    }
    [code=Java]通过调用ConnectDB.getSt()来传递.
      

  3.   

    可以用个简单的工厂模式public class ConnectDB{ 
        private Connection con=null;
        private Statement st=null;
    private String url;
    static {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
        url="jdbc:odbc:Driver={MicroSoft Access Driver             (*.mdb)};DBQ=E:\\EclipseWS\\AddressList\\source\\DB.mdb"; 

    }    public static Connection createConnection() 
        { 
          
            try
            { 
                con = DriverManager.getConnection(url,"amin","admin"); 
                return con        }catch(Exception ex)
                { 
                  JOptionPane.showMessageDialog(null , "数据库连接错误"+"SQL exception:" + ex.getMessage() , "Error" , JOptionPane.ERROR_MESSAGE);
                } 
        
        } 
    }最好是返回Connection,因为你用完后肯定要把它close掉。
    你想连接池不就是返回给你的Connection么。
    当然最好你就用个已有的连接池,像c3po等等不是更好
      

  4.   

    你这样设计很危险的,不要把 Connection、Statement 和 ResultSet 传来传去。
      

  5.   

    为了避免不必要的麻烦,不要将 Connection, Statement, ResultSet 作为成员变量,也不要在方法间进行传递。
    数据库操作最小的粒度是 POJO 对象,而不是数据库连接的这些对象。采用的方法签名可以是这样的:/**
     * 根据用户名和密码获得用户对象
     *
     * @param username  用户名
     * @param password  密码
     * @return  获得匹配用户名和密码的 User 对象,如果没有可匹配的 User 则返回 null
     */
    public User queryUser(String username, String password);
      

  6.   


    偶也认为  不要将 Connection, Statement, ResultSet 作为成员变量,也不要在方法间进行传递。lz最好是用其他的方式来实现你的需求!
      

  7.   

    Connection 这些作为成员变量传递,最大的坏处在哪里?