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 列是 Number 类型,值为 0 或 1。

我使用 java 布尔值而不是 int 做错了;但 jdbcTemplate 没有抱怨,它的工作原理。

任何人请解释JdbcTemplate发生了什么?

谢谢

4

1 回答 1

1

除了 PL/SQL 之外,Oracle 没有布尔类型(关于它们为什么不支持布尔值的问题可以在这里找到)。

在您的情况下发生的事情是 Oracle JDBC 驱动程序实际上正在为您处理数据类型映射(因此从您给它的布尔值映射到 oracle 需要的数字类型)。可以在此处找到有关此内容的详细信息:http: //docs.oracle.com/cd/B10501_01/java.920/a96654/basic.htm#1022590

于 2012-08-29T07:07:27.270 回答