MyBatisJdbcType与Oracle、MySql数据类型对应关系说明
1. Mybatis JdbcType与Oracle、MySql数据类型对应列表
Mybatis JdbcType Oracle MySql
JdbcType ARRAY
JdbcType BIGINT BIGINT
JdbcType BINARY
JdbcType BIT BIT
JdbcType BLOB BLOB BLOB
JdbcType BOOLEAN
JdbcType CHAR CHAR CHAR
JdbcType CLOB CLOB CLOB–>修改为TEXT
JdbcType CURSOR
JdbcType DATE DATE DATE
JdbcType DECIMAL DECIMAL DECIMAL
JdbcType DOUBLE NUMBER DOUBLE
JdbcType FLOAT FLOAT FLOAT
JdbcType INTEGER INTEGER INTEGER
JdbcType LONGVARBINARY
JdbcType LONGVARCHAR LONG VARCHAR
JdbcType NCHAR NCHAR
JdbcType NCLOB NCLOB
JdbcType NULL
JdbcType NUMERIC NUMERIC/NUMBER NUMERIC/
JdbcType NVARCHAR
JdbcType OTHER
JdbcType REAL REAL REAL
JdbcType SMALLINT SMALLINT SMALLINT
JdbcType STRUCT
JdbcType TIME TIME
JdbcType TIMESTAMP TIMESTAMP TIMESTAMP/DATETIME
JdbcType TINYINT TINYINT
JdbcType UNDEFINED
JdbcType VARBINARY
JdbcType VARCHAR VARCHAR VARCHAR
注意到, MyBatis的JdbcType中部分没有对应到Oracle和Mysql的数据类型中(或许由于⾃⼰遗漏),不过不⽤担⼼,后续⼤家碰到再具体分析;同时上述对应关系不⼀定是⼀⼀对应,请⼤家了解。
⼤家主要掌握基本的数字、时间、字符串就⾜以应对⽇常开发了。
2. Mybatis JdbcType官⽅⽂档
查阅Mybatis JdbcType官⽅⽂档是很有必要的!
3. 说明
对于⾃⼰不肯定的,调整代码多尝试下,能够使⾃⼰加深印象!
4. 更新⽇志
2017-04-26 修改内容:MySQL中没有CLOB类型,谢谢@⽕灵指正。
Mybatis JdbcType Oracle MySql
JdbcType CLOB CLOB CLOB–>修改为TEXT
补充知识:MyBatis 指定JdbcType. 如#{name,jdbcType=VARCHAR}
oracle decimal类型
在执⾏SQL时MyBatis会⾃动通过对象中的属性给SQL中参数赋值,它会⾃动将Java类型转换成数据库的类型。⽽⼀旦传⼊的是null 程序就⽆法准确判断这个类型应该是什么(是Integer?是VARCHAR?还是别的?),就有可能将类型转换错误,从⽽报错。
加⼊jdbcType正是为了解决这样的报错,需要针对这些可能为空的字段,⼿动指定其转换时⽤到的类型。
⼀般情况下,我们没有必要按个字段去识别/判断它是否可以为空,⽽是将所有的字段都当做可以为空,全部⼿动设置转换类型。
<insert id="save"
parameterType="ity.Cost">
insert into cost values(
val,
#{name,jdbcType=VARCHAR},
#{base_duration,jdbcType=INTEGER},
#{base_cost,jdbcType=DOUBLE},
#{unit_cost,jdbcType=DOUBLE},
#{status,jdbcType=CHAR},
#{descr,jdbcType=VARCHAR},
#{creatime,jdbcType=TIMESTAMP},
#{startime,jdbcType=TIMESTAMP},
#{cost_type,jdbcType=CHAR}
)
</insert>
其他数据类型参照下图
以上这篇MyBatis JdbcType 与Oracle、MySql数据类型对应关系说明就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。