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方法