MyBatis中的JdbcType映射使⽤详解
Java项⽬涉及到数据库交互,以往常⽤的是JDBC,现在则有Hibernate、Mybatis等这些持久化⽀持。
项⽬中⽤到了MyBatis,和JDBC最显著的区别,就是SQL语句配置化,通过xml⽂件定义SQL语句,当然JDBC也可以将SQL配置化,需要定制开发,MyBatis则直接⽀持这种⽅法。
官⽅对于MyBatis的介绍,
MyBatis is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings.
MyBatis eliminates almost all of the JDBC code and manual setting of parameters and retrieval of results. MyBatis can use simple XML or Annotations for configuration and map primitives, Map interfaces and Java POJOs (Plain Old Java Objects) to database records.
简单来讲,MyBatis⼏乎屏蔽了所有JDBC代码,⽤⼀种简单的xml,或者注解,就能完成数据库交互。
Associated JDBC type can be specified by two means:
Adding a jdbcType attribute to the typeHandler element (for example: jdbcType="VARCHAR").
Adding a @MappedJdbcTypes annotation to your TypeHandler class specifying the list of JDBC types to associate it with.
This annotation will be ignored if the jdbcType attribute as also been specified.
例如下⾯的配置,指定companyid参数类型为BIGINT,
<select id='getMeetingnoByCompanyid' parameterType="java.lang.Integer"
resultType="java.lang.String">
ingno
from xxx a
where apanyid = #{companyid, jdbcType=BIGINT}
</select>
另外,以下介绍给出了JdbcType和Oracle以及MySQL,相互之间的映射关系,⽐较详细:
1. Mybatis JdbcType与Oracle、MySql数据类型对应列表
JdbcType Oracle MySql
JdbcType ARRAY
JdbcType BIGINT BIGINT
JdbcType BINARY
mysql操作官方文档JdbcType BIT BIT
JdbcType BLOB BLOB BLOB
JdbcType BOOLEAN
JdbcType CHAR CHAR CHAR
JdbcType CLOB CLOB修改为TEXT
JdbcType CURSOR
JdbcType DATE DATE DATE
JdbcType DATE DATE DATE
JdbcType Oracle MySql
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映射使⽤详解就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

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