MyBatis JdbcType 与Oracle、MySql数据类型对应关系说明
程序员文章站
2022-03-14 18:36:20
1. mybatis jdbctype与oracle、mysql数据类型对应列表 mybatis jdbctype 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}
在执行sql时mybatis会自动通过对象中的属性给sql中参数赋值,它会自动将java类型转换成数据库的类型。而一旦传入的是null 程序就无法准确判断这个类型应该是什么(是integer?是varchar?还是别的?),就有可能将类型转换错误,从而报错。
加入jdbctype正是为了解决这样的报错,需要针对这些可能为空的字段,手动指定其转换时用到的类型。
一般情况下,我们没有必要按个字段去识别/判断它是否可以为空,而是将所有的字段都当做可以为空,全部手动设置转换类型。
<insert id="save" parametertype="com.tarena.entity.cost"> insert into cost values( cost_seq.nextval, #{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数据类型对应关系说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。