0
jdbcを使用してデータを挿入するこのメソッドは、java型に従って値を挿入します。このような何か:varcharでプリペアドステートメントにnullを設定するとどうなりますか?
Object o = map.get(key);
if(o == null) {
// setNull(index);
} else if(o instanceof String) {
// setString(index, (String) o);
} else if(o instanceof Timestamp) {
// setTimestampt(index, (Timestamp) o);
} else if(o instanceof Integer) {
// setInt(index, (Integer) o);
}
index++;
(それがすべてコメント化されて横に:P)それはかかわらず、問題がある O の値がnullの場合
を、私は"setNull(int, int)"メソッドを使用するrequieredんだけど、
... 注:私は、SQLタイプを指定する必要がありますが、パラメータのSQL型を指定する必要があります。
しかし...私はタイプを知らないので、私はいつも私がvarchar型でプリペアドステートメントにはnullに設定した場合どうなるどうVARCHAR(理由だけで)
setNull(index,Types.VARCHAR); .
使用を検討しています常に?
私が使用しています。Oracle JDBドライバで
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
を:
11.1.0.7.0-Production (ojdbc6.jar)
選択肢でしょうか?
少し複雑です。私は余分な余分なダイナミズム(並べ替え)で周りをだますので、私は実際に列の正確な位置を持っていません。しかし、代わりに私はカラム名に基づいてポジションを設定しています(EMPL_IDは20番目のカラムかもしれませんが、私はそれを私のpstmtの1stのように設定しています.....) – OscarRyz
待って...意味があります.... mmmhhh ....私はしばらくそれを噛んでみましょう...もし私が(1 * 0のテーブルからselect *を選択し、ResultSetMetadataを取得し、columnnameを使って型を取得するとどうなりますか?いいえ、別のMapを見ています...)... –
OscarRyz
現在値を取得するのではなく、値と型を入力として取得できませんか? – OpenSource