MyBatis的jdbcType的作用

今天在工作中,碰到在MyBatis的Mapping中看到了jdbc这个参数,瞬间懵逼,于是百度了下。



Mybatis中的jdbcType的作用

使用MyBatis框架做更新操作时,在该字段需要更新的内容为空时,就会出现1111错误,也就是无效的列类型,这个时候你就要使用jdbcType。
至于什么时候要使用到javaType我还没遇到过,而且我也没有听说过要使用javaType。
前天遇到一个问题 异常显示如下: 

引用

Exception in thread "main" 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. Cause: java.sql.SQLException: 无效的列类型: 1111 
; uncategorized SQLException for SQL []; SQL state [99999]; error code [17004];
 无效的列类型: 1111; nested exception is java.sql.SQLException: 无效的列类型: 1111 

所以说jdbcType这个参数的应用场景就是,当执行mapping文件的时候,有个映射的参数为空,那么无法确定他的类型,这个时候就需要jdbcType来确定类型。


另外在搜索jdbctype的时候,发现了一个新的参数javatype,猜测是在参数里定义了泛型之后,如果这个泛型最后没有确定类型,那么也会报错,要在mapping文件里 给这个泛型定义类型。javatype没有见过,所以暂时没有过多去研究。


jdbctype的例子

这里需要说明的是不同的类型,jdbctype是不同的。

你可能感兴趣的:(Mybatis)