Oracle数据库mybatis 插入空值时报错(with JdbcType OTHER)的两种解决方案
在使用Mybatis 3 时,发现了这个问题,当插入数据时,如果有一个字段为空值时,系统会报异常,导致插入数据失败。
异常信息类似:
org.springframework.jdbc.UncategorizedSQLException: Error setting null for parameter #6 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property.
经过查阅各种资料,终于找到了两种解决方案,分别如下,其中第二种方案个人比较喜欢。
第一种方式,如出错信息中提到的,需要在每个数据变量那里设置相应的jdbcType,示例如下(加粗加下划线部分的内容):
1.CustomerLog”>
2. insert into customer_log
3. (
4. ID,
5. CUSTOMER_SERVICE_USER_NAME,
6. user_name ,
7. CONTENT,
8. LOG_FIRST_TYPE,
9. STATUS,
10. LINKED_ID,
11. FEE,
12. ACCOUNT_FIRST_TYPE,
13. ACCOUNT_SECOND_TYPE,
14. ACCOUNT_THIRD_TYPE,
15. LOG_SECOND_TYPE,
16. LOG_IP,
17. MEMO
18. )
19. values
20. (
21. seq_customer_log.nextval ,
22. #{customerServiceUserName,jdbcType=VARCHAR} ,