2012-08-28 43 views
0

的JdbcTemplate下面的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的值。

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

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

感谢

回答

1

Oracle没有比PL/SQL以外的布尔类型(为什么他们不支持布尔值的问题可以发现here)。

你的情况是,Oracle JDBC Driver实际上正在为你处理数据类型映射(所以从你给它的布尔映射到oracle需要的数字类型)。关于此的详细信息可以在这里找到:http://docs.oracle.com/cd/B10501_01/java.920/a96654/basic.htm#1022590