こんにちは私はJDBCを初めて使っていて、JDBCを構築中にexecuteQuery
というエラーが発生しました。私はちょうどstudent
テーブルのすべての情報を表示したいと思う。 prepareStatement
を使用しましたが、私は持っていないのでパラメータを設定しませんでした。それはcreateStatement
を使用して動作します。 JDBCのexecuteQueryエラー
この
は、私は私はそれがprepareStatement
を使用して作業を取得できますか
The method executeQuery(String) in the type Statement is not applicable for the arguments()
を取得していますエラーです。
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型の変数に割り当てます。 –
'Statement myStmt = null;'の代わりに 'PreparedStatement myStmt = null;'を使ってみてください。 –