0

以下のJavaコード:

JdbcTemplate jdbcTemplate = getJdbcTemplate();
Boolean isEnabled = true;
String sql = "INSERT INTO user_table (username, is_enabled) VALUES(?, ?)";
jdbcTemplate.update(sql, new Object[]{"a_username", isEnabled}

Oracle データベースの user_table の is_enabled 列は、0 または 1 の値を持つ数値型です。

int の代わりに Java ブール値を使用して間違っていました。しかし、 jdbcTemplate は文句を言わず、動作します。

JdbcTemplate で何が起こっているのか説明してください。

ありがとう

4

1 に答える 1

1

Oracle には、PL/SQL 以外のブール型はありません (ブール型をサポートしない理由についての質問は、こちらを参照してください)。

あなたの場合、Oracle JDBC Driverが実際にデータ型のマッピングを処理していることです(したがって、ブール値からオラクルが必要とする数値型へのマッピング)。詳細については、http: //docs.oracle.com/cd/B10501_01/java.920/a96654/basic.htm#1022590を参照してください。

于 2012-08-29T07:07:27.270 に答える