![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
動的SQLのバインド変数に対して、PreparedStatement.setXXXXX()メソッドで値が設定できますが、これと同様に、IN演算子の()内をバインド変数化し、その都度内容を設定してやる事は可能でしょうか。
例えば、
SELECT *
FROM tbl_a
WHERE cd IN (?)
のようなSQLをプリコンパイルしたオブジェクトに対して、()内が(1','2','3')や('1','2')などのように動的に項目数、内容値が変更できるような設定方法をご存知の方がおられましたら、是非ご教示下さい。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
元のSQL文を動的に作成してから値をセットすればいいんじゃないですか?
例)
int[] vals = {1,2,3,4,5};
String sql = "SELECT * FROM tbl_a WHERE cd IN(" + createParamStr(vals.length) + ")";
PreparedStatement pstmt = connection.prepareStatement(sql);
for(int i = 0; i < vals.length; i++){
pstmt.setInt(i + 1, vals[i]);
}
------
String createParamStr(int num){
if(num < 1){
return "";
}
StringBuffer sb = new StringBuffer("?");
for(int i = 1; i < num; i++){
sb.append(",?");
}
return sb.toString();
}
※あくまで例なので試してません。
この回答への補足
ご回答ありがとうございます。
ご教示頂いた方法だと、IN演算子に与える要素の数が変わる度にSQLのプリコンパイルが必要です。
今回お尋ねしたかったのは、質問にもございますように、一度プリコンパイルしたSQLについて、動的にIN演算子に与える要素の数や内容を変えたいというものです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ActiveReportのdetailをデータセットの自動バインドを使って帳票を出力しています。 1 2023/08/16 07:16
- IT・エンジニアリング ActiveReportのdetailをデータセットの自動バインドを使って帳票を出力しています。 1 2023/08/16 07:17
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- PHP Q&Aサイトを作成していてURLの生成方法について迷っているのでアドバイスお願い致します 1 2023/08/10 16:42
- その他(プログラミング・Web制作) pythonのグローバル変数 2 2022/11/25 18:02
- IT・エンジニアリング ★お手上げ状態です。助けてください。ActiveReportについて 1 2023/08/20 04:29
- Visual Basic(VBA) ★お手上げ状態です。助けてください。ActiveReportについて 1 2023/08/20 04:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「配列定数は、イニシャライザ...
-
JAVA エラー 式の開始が不正で...
-
共有メモリについて
-
java spring でエラーが出て困...
-
式の型は配列型で int に解決済...
-
javaで画像ファイルを連続に取...
-
javaで次のような図の絵を描く...
-
IN演算子の中身を動的に生成
-
JAVA EOFの検出 (条件文で「...
-
C# Form処理
-
DataSet(DataTable)の使い方
-
[JAVA]割り算のあまり・・・
-
全組み合わせの出力
-
C#で実行時にメソッドの返り値...
-
Stringの文字列をString[]配列...
-
Javaプログラムについての質問...
-
sin曲線とcos曲線を描くプログ...
-
JUnit4のアノテーションについて
-
複数のボタンを配置し、それぞ...
-
javaのfor文
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「配列定数は、イニシャライザ...
-
Javaで電卓を作りたい
-
式の型は配列型で int に解決済...
-
javaでカレンダー作成
-
JAVA エラー 式の開始が不正で...
-
JAVAでCの関数ポインタのような...
-
java spring でエラーが出て困...
-
6桁の数字を重複なしでランダム...
-
c# デリゲート関連の命名について
-
C++からC#のdllを参照する際、...
-
メインが含まれていません
-
(Swing)JTextFieldを半角のみ入...
-
DataSet(DataTable)の使い方
-
三目並べ(Tick-Tack-Toe)をJav...
-
JUnit4のアノテーションについて
-
初心者ですが、今javaで簡単な...
-
classを使って座標軸を求めるコ...
-
javaでcsvファイル読込時の改行...
-
C#で実行時にメソッドの返り値...
-
Java 初心者 int型の取り扱い方
おすすめ情報