- PR -

where区を指定すると、executeがエラーになる

1
投稿者投稿内容
Masayuki2501
常連さん
会議室デビュー日: 2006/01/02
投稿数: 25
投稿日時: 2006-02-27 23:22
こんばんは。

以下のようなソースを実行すると、ps.executeQuery()の箇所でエラーになり、
System.out.println("aaa")が表示されません。

---
Connection con = getConnection();
PreparedStatement ps = null;
ResultSet rs = null;
String query = "select user_id from user_tbl where user_id = ?";

try {
// 参照用の設定
con.setReadOnly(true);
con.setAutoCommit(false);

ps = con.prepareStatement(query);
ps.execute("SET NAMES 'sjis'");
ps.setString(1, userID); // ユーザID

System.out.println("query = " + SELECT_USER_ID);
System.out.println(" user_id = [" + userID + "]");

rs = ps.executeQuery();
System.out.println("aaa");

String getUserID = null;
int num = 0;
if (rs.next()) {
getUserID = rs.getString("user_id");
System.out.println("result user_id = " + getUserID);
}

} catch (SQLException e) {
throw new DataAccessException(e);
} finally {
close(rs);
close(ps);
}
}
---

しかし、queryを以下のように変更すると、問題なく実行できます。
query = "select user_id from user_tbl";

where区を指定している場合に、ログに出力されるクエリをコピペで貼り付けて、
DBから検索実行可能なことは確認しています。

executeQueryでエラーになる理由をご存知の方、よろしくお願いします。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-02-27 23:37
まず、エラー関連で質問する際は、
スタックトレースやエラーメッセージを貼り付けましょう。
また、環境(JDK/RDB/OS)も書くようにしましょう。
1

スキルアップ/キャリアアップ(JOB@IT)