2013-02-19 79 views
1

我使用的是xampp mysql,這段代碼是針對JDBC程序的。實際上有兩個類,一個是dbconnect.java,另一個是login.java。我想訪問另一個類(即login.java)中的連接對象(即conn)。但我沒有適當的想法,我已經在這裏包含代碼,請告訴我什麼是問題和解決方案是什麼?如何訪問java中另一個類的連接對象?

這是dbconnect.java

package stundentrecord; 

import java.sql.Connection; 
import java.sql.DriverManager; 

public class dbconnect { 
    public void conect(){ 
     Connection con = null; 
     String url = "jdbc:mysql://localhost:3306/"; 
     String db = "studentRecord"; 
     String driver = "com.mysql.jdbc.Driver"; 
     String user = "root"; 
     String pass = ""; 
     try{ 
      Class.forName(driver); 
      con = DriverManager.getConnection(url + db, user, pass); 
      if(con==null){ 
       System.out.println("Connection cannot be established"); 
      } 
      // con.close(); 
     } catch (Exception e) { 
      System.out.println(e); 
     } 
    } 
} 

代碼,這裏是從另一個類名爲login.java

if(source==login){ 
    if(username!=null && password!=null) { 
     Connection conn= null; 
     Statement stmt = null; 
     dbconnect db = new dbconnect(); 
     db.conect(); 
     String query = "SELECT * from userlogin"; 
     try{ 
      stmt=(Statement) conn.createStatement(); // here is the problem 
      ResultSet rs = stmt.executeQuery(query); // here is the problem 
      while (rs.next()) { 
       String user = rs.getString("username"); 
       String pass=rs.getString("password"); 
       System.out.println("Welcome "+user); 
      } 
     } catch(SQLException ex){ 
      ex.getMessage(); 
     } 
     StundentRecord SR = new StundentRecord(); 
    } else { 
     JOptionPane.showMessageDialog(null,"Username or password field is empty","error !!",JOptionPane.ERROR_MESSAGE); 
    } 
} 

什麼是真正的問題,以及如何解決它的代碼?

+1

請格式化您的代碼,這是不可讀的。遵循Java約定(類是第一個大寫字母,等等......) – m0skit0 2013-02-19 15:00:48

+0

@SotiriosDelimanolis如果你閱讀代碼,你會明白設計問題 – 2013-02-19 15:01:29

+1

@LuiggiMendoza如果你可以閱讀任何東西,那就是。 – m0skit0 2013-02-19 15:02:06

回答

6

最簡單的方法是使connect方法非void,並返回連接:

public Connection conect() { 
    Connection con = null; 
    String url = "jdbc:mysql://localhost:3306/"; 
    String db = "studentRecord"; 
    String driver = "com.mysql.jdbc.Driver"; 
    String user = "root"; 
    String pass = ""; 
    try { 
     Class.forName(driver); 
     con = DriverManager.getConnection(url + db, user, pass); 
     if (con == null) { 
      System.out.println("Connection cannot be established"); 
     } 
     return con; 
    } catch (Exception e) { 
     System.out.println(e); 
    } 
    return null; 
} 
0

你應該從你的連接類返回連接對象並將其分配給您的登錄類...現在你連接對象爲空...

相關問題