如何从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 ...");
这种方法是简单的,但可能更多面向对象的,也许在你的情况是好的反正因为你似乎只需要一个连接来执行查询。