研修でjavaを勉強しています。
SELECT文でデータベースからIDと期間を指定して出力しようとしているのですが、うまくいきません。
よろしくお願いします。
発生している問題・エラーメッセージ
com.microsoft.sqlserver.jdbc.SQLServerException:オペランド型の不整合: date は int と互換性がありません。
該当のソースコード
java
1public class sampleDAO { 2private final String DRIVER_NAME = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; 3private final String JDBC_URL = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=sampleSUM"; 4private final String DB_USER = "sa"; 5private final String DB_PASS = ""; 6public List<exampleBean> find(String date) { 7Connection conn = null; 8List<exampleBean> examList = new ArrayList<exampleBean>(); 9// DBへ接続 10try { 11Class.forName(DRIVER_NAME); 12conn = DriverManager.getConnection(JDBC_URL, DB_USER, DB_PASS); 13String sql = "SELECT * FROM Sample WHERE ID=1000 and YM=?"; 14PreparedStatement pStmt = conn.prepareStatement(sql); 15pStmt.setString(1, date); 16// SELECT文の実行 17ResultSet rs = pStmt.executeQuery(); 18while (rs.next()) { 19int h1 = rs.getInt("h1"); 20int h2 = rs.getInt("h2"); 21int h3 = rs.getInt("h3"); 22int h4 = rs.getInt("h4"); 23ExampleBean example = new ExampleBean(h1, h2, h3, h4); 24exampleList.add(example); 25} 26} catch (SQLException e) { 27e.printStackTrace(); 28return null; 29} finally { 30if (conn != null) { 31try { 32conn.close(); 33} catch (SQLException e) { 34e.printStackTrace(); 35return null; 36} 37} 38return examList; 39} 40}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/18 00:20
2017/10/18 01:48 編集
2017/10/18 06:18
2017/10/18 09:30
2023/09/04 04:59 編集