MyBatis 向 SQL Server 数据库插入报异常,主要异常信息如下:
com.microsoft.sqlserver.jdbc.SQLServerException: 不允许从数据类型 varbinary 到 date/datetime/datetime2 的隐式转换。请使用 CONVERT 函数来运行此查询。
1.解决方法一:xml 映射文件中对应的 sql 字段补上 jdbcType ,参考如下:
...
#{birthday,jdbcType=DATE/TIMESTAMP},
...
2.解决方法二:entity 表实体类中对应的属性补上注解 @ColumnType及其属性jdbcType ,参考如下:
@tk.mybatis.mapper.annotation.ColumnType(jdbcType = org.apache.ibatis.type.JdbcType.DATE/TIMESTAMP)
private java.util.Date birthday;
本文解决了一个在使用MyBatis框架向SQLServer数据库插入数据时遇到的异常问题,即不允许从数据类型varbinary到date/datetime/datetime2的隐式转换。提供了两种解决方案:一是修改XML映射文件中的SQL字段并指定jdbcType;二是为实体类属性添加@ColumnType注解。
4361

被折叠的 条评论
为什么被折叠?



