app开发者平台在数字化时代的重要性与发展趋势解析
753
2023-04-09
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官方文档
查阅Mybatis JdbcThttp://ype官方文档是很有必要的!
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正是为了解决这样的报错,需要针对这些可能为空的字段,手动指定其转换时用到的类型。
一般情况下,我们没有必要按个字段去识别/判断它是否可以为空,而是将所有的字段都当做可以为空,全部手动设置转换类型。
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} )
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}
)
其他数据类型参照下图
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~