下面的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发生了什么?
感谢
答案 0 :(得分:1)
Oracle没有PL / SQL以外的布尔类型(关于为什么不支持布尔值的问题可以找到here)。
在您的情况下发生的事情是Oracle JDBC驱动程序实际上正在为您处理数据类型映射(因此从您提供的布尔值映射到oracle需要的数字类型)。有关详细信息,请访问:http://docs.oracle.com/cd/B10501_01/java.920/a96654/basic.htm#1022590