我在使用这段语法时遇到了一些麻烦:
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);
}
}
答案 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命名约定,该约定要求类(和构造函数)名称以大写字母开头,而变量',方法'(除了构造函数)和属性名称以小写字母。