0
嗨,我是JDBC新手,在構建JDBC時遇到executeQuery
錯誤。我只想顯示student
表中的所有信息。我用prepareStatement
,我沒有設置任何參數,因爲我沒有。它在使用createStatement
時有效。executeQuery ERROR for JDBC
這是我得到
The method executeQuery(String) in the type Statement is not applicable for the arguments()
我怎樣才能得到它的工作使用prepareStatement
錯誤。
public class Test3 extends JFrame{
Vector rowData,columnNames;
JTable jt = null;
JScrollPane jsp = null;
Connection myConn = null;
Statement myStmt = null;
ResultSet myRs = null;
//constructor
public Test3() {
columnNames = new Vector();
rowData = new Vector();
columnNames.add("Student_ID");
columnNames.add("Name");
columnNames.add("Gender");
columnNames.add("Age");
columnNames.add("DOB");
columnNames.add("Major");
try {
//1. Get a connection to database
Connection myConn = DriverManager.getConnection("jdbc:mysql://localhost:3306/stu?useSSL=false","root","1972");
//2. Create a prepareStatement
myStmt = myConn.prepareStatement("Select * from student");
// 3. Set the parameters
// no need to set the parameters, because there is not parameter needed to be set
// 4. Execute SQL query
***myRs = myStmt.executeQuery();***
while(myRs.next()) {
Vector col = new Vector();
col.add(myRs.getString(1));
col.add(myRs.getString(2));
col.add(myRs.getString(3));
col.add(myRs.getInt(4));
col.add(myRs.getString(5));
col.add(myRs.getString(6));
rowData.add(col);
}
} catch(Exception e) {
e.printStackTrace();
} finally {
try {
if(myRs!=null) myRs.close();
if(myStmt!=null) myStmt.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
Test3 test3 = new Test3();
}
}
你不說你的錯誤是什麼,我假設它不編譯,因爲該方法在Statement上不存在。將準備好的語句分配給PreparedStatement類型的變量。 –
嘗試使用'PreparedStatement myStmt = null;'而不是'Statement myStmt = null;'。 –