2010-06-03 94 views
1

我有兩個java類。一個是NewFrame.java,表單(按鈕,文本框)位於其中。而另一種是Main.java,我已經把連接字符串爲MySQL:如何從java中的主類繼承

Main.java看起來是這樣的:

public class Main { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) throws Exception { 
     // TODO code application logic here 
     Class.forName("com.mysql.jdbc.Driver"); 
     Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/employee_record", "root", "password"); 
     PreparedStatement statement = con.prepareStatement("select * from employee"); 
     ResultSet result = statement.executeQuery(); 

    } 

}

如何從main.java繼承這樣NewFrame.java中的表單就可以普遍訪問它中的聲明瞭嗎? 請幫忙。謝謝

回答

2

一個更好的辦法來解決這個問題是創建一個實用工具類

public class DataBaseHandler{ 
    public static Connection getConnection(){ 
    //... 
    } 

    public static Object executeQuery(String query){ 
    //... 
    } 
} 
1

假設NewFrame擴展了JFrame或Frame,你不能通過繼承來完成它,因爲Java只支持單個實現繼承(extends)和多個接口繼承(implements)。

你可能會做類似:

public abstract class DatabaseFrame 
    extends JFrame 
{ 
    // common code goes here 
} 

public class NewFrame 
    extends DatabaseFrame 
{ 
    // will have to have a main method here 
} 

進而拉動當前在主要出代碼和抽象類的投入方法(S)/變量(一個或多個)。

1

您將需要暴露在外部類的連接,如果你華中科技大學需要在其上執行語句只是提供Main.java

public static ResultSet executeStatement(String string) throws SQLException 
{ 
    return con.prepareStatement(string).executeQuery(); 
} 

請注意,您必須捕獲或拋出回SQLException ..和連接需要是靜態的。這將允許你通過調用Main.executeStatement("select ...");

這種方法是簡單的,但可能更多面向對象的,也許在你的情況是好的反正因爲你似乎只需要一個連接來執行查詢。

0

A static import將爲您帶來大部分途徑。儘管如此,我無法阻止它的使用,但它確實違背了面向對象編程的精神。