Java - 无法识别构造函数方法

时间:2013-04-30 16:46:01

标签: java constructor

我在使用这段语法时遇到了一些麻烦:

Connection con = null;
Statement st = null;
ResultSet rset = null;

/**
 * Creates new form formUsers
 */
public formUsers() {
    initComponents();
    con = SQLInteract.SQLInteract();
    tableUpdate();
}

我试图调用我已经创建的MySQL数据库的连接,该数据库包含在类的构造函数方法中。我只是在某种程度上搞砸了语法,或者我根本不能这样做?或者它真的像使用一样简单:

    SQLInteract Connect = new SQLInteract();

根据要求;这是SQLInteract语法:

Connection con = null;
Statement st = null;
ResultSet rset = null;

public SQLInteract() {
    try{
        Class.forName("com.mysql.jdbc.Driver");
        con = DriverManager.getConnection("jdbc:mysql://localhost:3306/chemsimdb","root","");
    }catch(Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }
}

3 个答案:

答案 0 :(得分:2)

您必须使用构造函数创建新实例:

SQLInteract connect = new SQLInteract();

或者你说你已经建立了一个我认为是由SQLInteract实例表示的连接,所以你必须将现有实例的这个引用传递给新类。 PS:最好用大写字母命名你的类,所以formUsers应该是FormUsers

public FormUsers(SQLInteract existingSqlConncetion) {
    initComponents();
    //con will hold a reference to the SQLInteract instance that has previously been constructed
    con = existingSqlConnection;
    tableUpdate();
}

答案 1 :(得分:0)

对我来说(虽然我可能错了),如果已经在该类中建立了MySQL连接,则不应该调用构造函数。您应该使用该类的已实例化对象,该对象包含对MySQL连接的引用,并且只是要求该连接。

如果你的意思是'我已经做过',你的意思是连接到数据库的代码在那个构造函数中,你只需要调用它然后是的,你必须创建一个新对象:

SQLInteract connect = new SQLInteract();

你和你写的内容之间的微小区别是连接中的小写C,记住你在这里命名一个成员对象,而不是一个类(我假设你只是一个错字,但jsut确定)

答案 2 :(得分:-1)

你说你已经建立了与数据库的连接。我假设你是这样做的:

SQLInteract sqlInteract = new SQLInteract();

然后,您需要做的是以下内容:

public formUsers() {
    initComponents();
    con = sqlInteract.con;
    tableUpdate();
}

但是,当然,您之前创建的SQLInteract实例必须在您想要连接的地方可用。

此外,我强烈建议您遵循Java命名约定,该约定要求类(和构造函数)名称以大写字母开头,而变量',方法'(除了构造函数)和属性名称以小写字母。