【发布时间】:2017-09-29 06:38:50
【问题描述】:
您好,我正在尝试在 java 中使用 Access 数据库,但遇到了一些麻烦。下面我已经建立了到我的数据库的连接。
public class DBAccess {
DBAccess() {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=CFPDB.mdb;";
Connection conn = DriverManager.getConnection(database, "", "");
Statement s = conn.createStatement();
}
catch(Exception ex) {
ex.printStackTrace();
}
}
}
我需要使用我的 gui 类访问 's' 变量表单以检查密码:
else if(event.getSource() == loginSubmitButton){
DBAccess loginCheck;
String selFromTable = "SELECT PASSWORD FROM USERS WHERE USERNAME = '" + loginUsername.getText() + "'; ";
loginCheck.s.execute(selFromTable);
ResultSet retrievedPassword = loginCheck.s.getResultSet();
String password = retrievedPassword.getString(1);
String password_entered = loginPassword.getText();
}
但我的编译器说它找不到符号 - 变量“s”。 DBAccess 类在我的 gui 的单独文件中,但都在同一个包中。任何帮助都会很棒。 :)
【问题讨论】:
-
为了让类与世界分享事物,我们有类字段和吸气剂。
-
s不是一个字段,它是一个变量,一旦创建对象就会超出范围。另一个问题是该对象永远不会被创建,并且您永远不会清理您的 SQL,从而使您容易受到 SQL 注入的攻击。