Java-不识别构造函数方法

Java-不识别构造函数方法,java,constructor,Java,Constructor,我在语法方面遇到了一些问题: Connection con = null; Statement st = null; ResultSet rset = null; /** * Creates new form formUsers */ public formUsers() { initComponents(); con = SQLInteract.SQLInteract(); tableUpdate(); } 我试图调用与我已经建立的MySQL数据库的连接,该数据

我在语法方面遇到了一些问题:

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);
    }
}
在我看来(尽管我可能错了),如果MySQL连接已经在该类中建立,那么不应该调用构造函数。您应该使用该类的一个已经实例化的对象来保存对MySQL连接的引用,并简单地请求该连接

如果您的意思是“我已经制作了”,您的意思是连接到DB的代码在该构造函数中,并且您只想调用它,那么您必须创建一个新对象:

SQLInteract connect = new SQLInteract();

这与您编写的代码之间的一个小区别是connect中的小写C,记住这里您命名的是一个成员对象,而不是一个类(我假设这只是您的一个输入错误,但jsut请确保)

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

SQLInteract connect = new SQLInteract();
或者您说您已经建立了一个连接,我假设该连接由SQLInteract的实例表示,因此您必须将现有实例的引用传递给新类。附言:用大写字母命名班级是一个很好的做法,所以formUsers应该是formUsers

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

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

SQLInteract sqlInteract = new SQLInteract();
然后,您需要执行以下操作:

public formUsers() {
    initComponents();
    con = sqlInteract.con;
    tableUpdate();
}
但是当然,您以前创建的
SQLInteract
实例必须在需要连接的任何地方都可用


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

这样做是否会出错?其实很简单。构造函数不是静态方法。请发布
SQLInteract
类的代码。是否可以共享
SQLInteract
?因为
SQLInteract Connect=newsqlinteract()
不会提供连接对象,它提供了SQLInteract类的实例,如果要访问在内部创建的连接对象,则需要一个getter方法