如何从java中的主类继承

问题描述:

我有两个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中的表单就可以普遍访问它中的声明了吗? 请帮忙。谢谢

一个更好的办法来解决这个问题是创建一个实用工具类

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

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

假设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)/变量(一个或多个)。

您将需要暴露在外部类的连接,如果你华中科技大学需要在其上执行语句只是提供Main.java

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

请注意,您必须捕获或抛出回SQLException ..和连接需要是静态的。这将允许你通过调用Main.executeStatement("select ...");

这种方法是简单的,但可能更多面向对象的,也许在你的情况是好的反正因为你似乎只需要一个连接来执行查询。

A static import将为您带来大部分途径。尽管如此,我无法阻止它的使用,但它确实违背了面向对象编程的精神。