如何从java中继承主类

时间:2010-06-03 03:39:42

标签: java mysql

我有两个java类。一个是NewFrame.java,其中包含表单(按钮,文本字段)。另一个是Main.java,我在其中放置了mysql的连接字符串:

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中的表单可以普遍访问其中的声明? 请帮忙。感谢

4 个答案:

答案 0 :(得分:2)

解决问题的更好方法是创建实用程序类

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

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

答案 1 :(得分:1)

假设NewFrame扩展了JFrame或Frame,你无法通过继承来实现,因为Java只支持单实现继承(extends)和多接口继承(实现)。

您可能会这样做:

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

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

然后拉出当前处于main的代码并将其放入抽象类中的方法/变量中。

答案 2 :(得分:1)

您需要公开与外部类的连接,如果您需要在其上执行语句,只需提供Main.java

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

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

来执行查询

这种方法很简单,但可能更面向对象,可能在你的情况下还可以,因为你似乎只需要一个连接。

答案 3 :(得分:0)

static import会让你大部分时间到达那里。话虽如此,我不能劝阻它的使用,但它确实违背了面向对象编程的精神。