前提・実現したいこと
タイトルの通りですがSELECT文のWHERE句に変数を当てはめるにはどうすれば良いでしょうか。
以下がsql文を行おうとしているメソッドになります。
変数sに比較したいコードが格納されています。
発生している問題・エラーメッセージ
・rsを解決できない ・メソッド setString(int, String) は型 Statement で未定義です ・型 Statement のメソッド executeQuery(String) は引数 () に適用できません
該当のソースコード 1
java
1 txtCode.setText(s); 2 3 String sql = "select * from データ where コード = ?"; 4 5 String url = "jdbc:sqlserver://~~~~~~~~; 6 // SQL Serverのユーザ名とパスワード 7 String username = "~~"; 8 String password = "~~~~"; 9 10 try { 11 // JDBCドライバをロード 12 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 13 // SQL Serverに接続 14 Connection con = DriverManager.getConnection(url, username, password); 15 16 // SQL Serverに問い合わせ 17 Statement stmt = con.prepareStatement(sql) ; 18 stmt.setString(1, s); //ここの意味が分かりません 19 rs = stmt.executeQuery(); 20 21 while (s.next()) { 22 lblName.setText("名前"); 23 } 24 25 // 後処理 26 s.close(); 27 stmt.close(); 28 con.close(); 29
該当のソースコード 2 追記
java
1 2 txtCode.setText(s); 3 4 5 String url = "jdbc:sqlserver://~~~~~"; 6 // SQL Serverのユーザ名とパスワード 7 String username = "~~"; 8 String password = "~~"; 9 10 try { 11 // JDBCドライバをロード 12 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 13 // SQL Serverに接続 14 Connection con = DriverManager.getConnection(url, username, password); 15 16 // SQL Serverに問い合わせ 17 18 Statement stmt = con.createStatement(); 19 ResultSet rs = stmt.executeQuery("select 名前 from データ WHERE コード = '" + s +"'"); 20 21 while (rs.next()) { 22 lblName.setText(rs.getString( "名前")); 23 } 24 25 // 後処理 26 rs.close(); 27 stmt.close(); 28 con.close();
試したこと
・バインド変数?
・ResultSet rs = stmt.executeQuery("select 名前 from データ WHERE コード = '" + s +"'");
回答2件
あなたの回答
tips
プレビュー