写点什么

MyBatis 的 jdbcType 和 javaType 详解,spring 框架入门教程

作者:Java高工P7
  • 2021 年 11 月 10 日
  • 本文字数:1680 字

    阅读完需:约 6 分钟

MyBatis 包含的 JdbcType 类型,主要有下面这些,大致了解一下即可:


BIT、FLOAT、CHAR 、TIMESTAMP 、 OTHER 、UNDEFINEDTINYINT 、REAL 、VARCHAR 、BINARY 、BLOB NVARCHAR、SMALLINT 、DOUBLE 、LONGVARCHAR 、VARBINARY 、CLOB、NCHAR、INTEGER、 NUMERIC、DATE 、LONGVARBINARY 、BOOLEAN 、NCLOB、BIGINT 、DECIMAL 、TIME 、NULL、CURSOR


上述 JdbcType 类型和 Java 类型的对应关系,可以参照下面的列表,不过不同数据库的 JdbcType 多少有些出入,请注意即可。


JDBC Type Java Type


CHAR String


VARCHAR String


LONGVARCHAR String


NUMERIC java.math.BigDecimal


DECIMAL java.math.BigDecimal


BIT boolean


BOOLEAN boolean


TINYINT byte


SMALLINT short


INTEGER INTEGER


BIGINT long


REAL float


FLOAT double


DOUBLE double


BINARY byte[]


VARBINARY byte[]


LONGVARBINARY byte[]


DATE java.sql.Date


TIME java.sql.Time


TIMESTAMP java.sql.Timestamp


CLOB Clob


BLOB Blob


ARRAY Array


DISTINCT mapping of underlying type


STRUCT Struct


REF Ref


DATALINK java.net.URL


JdbcType 类型的作用


在 Mybatis 明文建议在映射字段数据时需要将 JdbcType 属性加上,这样相对来说是比较安全的。


<insert id="saveRole">


ins


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


ert into role values (


#{roleId},


#{name},


#{remarks},


#{orderNo},


#{createBy,jdbcType=VARCHAR},


#{createDept,jdbcType=VARCHAR},


#{createTime,jdbcType=DATE},


#{updateBy,jdbcType=VARCHAR},


#{updateTime,jdbcType=DATE}


)


</insert>


这样,保证了前四种是不能为空的前提下,而后面几项为空时也不至于程序报错。如果 createBy 为空,插入的时候 mybatis 不知道具体转换成什么 jdbcType 类型,通常会使用一个默认设置,虽然默认配置一般情况下不会出错,但是遇到个别情况还是会有问题的。Mybatis 经常出现的:无效的列类型: 1111 错误,就是因为没有设置 JdbcType 造成的。


Mybatis 中 jdbcType 和 javaType 的对应关系


=============================================================================================


1 JDBC Type Java Type


2 CHAR String


3 VARCHAR String


4 LONGVARCHAR String


5 NUMERIC java.math.BigDecimal


6 DECIMAL java.math.BigDecimal


7 BIT boolean


8 BOOLEAN boolean


9 TINYINT byte


10 SMALLINT short


11 INTEGER int


12 BIGINT long


13 REAL float


14 FLOAT double


15 DOUBLE double


16 BINARY byte[]


17 VARBINARY byte[]


18 LONGVARBINARY byte[]


19 DATE java.sql.Date


20 TIME java.sql.Time


21 TIMESTAMP java.sql.Timestamp


22 CLOB Clob


23 BLOB Blob


24 ARRAY Array


25 DISTINCT mapping of underlying type


26 STRUCT Struct


27 REF Ref


28 DATALINK java.net.URL[color=red][/color]


Mybatis JdbcType 与 Oracle、MySql 数据类型对应列表


====================================================================================================


Mybatis JdbcType Oracle MySql


JdbcType ARRAY


JdbcType BIGINT BIGINT


JdbcType BINARY


JdbcType BIT BIT


JdbcType BLOB BLOB BLOB


JdbcType BOOLEAN

用户头像

Java高工P7

关注

还未添加个人签名 2021.11.08 加入

还未添加个人简介

评论

发布
暂无评论
MyBatis的jdbcType和javaType详解,spring框架入门教程