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,或者注解,就能完成数据库交互。
xml配置文件,可用MyBatis自己定义的数据类型,引自:http://www.mybatis.org/mybatis-3/configuration.html
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'> select a.meetingno from xxx a where a.companyid = #{companyid, jdbcType=BIGINT}</select>
对于jdbcType,MyBatis的API文档有说明,引自:http://www.mybatis.org/mybatis-3/apidocs/reference/org/apache/ibatis/type/JdbcType.html
另外,以下介绍给出了JdbcType和Oracle以及MySQL,相互之间的映射关系,比较详细:
1. Mybatis JdbcType与Oracle、MySql数据类型对应列表
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 修改为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 JdbcType官方文档是很有必要的!
3. 说明
对于自己不肯定的,调整代码多尝试下,能够使自己加深印象!
4. 更新日志
2017-04-26 修改内容:MySQL中没有CLOB类型,谢谢@火灵 指正。
Mybatis JdbcType Oracle MySql JdbcType CLOB CLOB CLOB?>修改为TEXT以上这篇MyBatis中的JdbcType映射使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持好吧啦网。
相关文章:
1. Python使用oslo.vmware管理ESXI虚拟机的示例参考2. Express 框架中使用 EJS 模板引擎并结合 silly-datetime 库进行日期格式化的实现方法3. 一篇文章带你了解JavaScript-对象4. javascript设计模式 ? 建造者模式原理与应用实例分析5. IntelliJ IDEA设置条件断点的方法步骤6. Java构建JDBC应用程序的实例操作7. ThinkPHP5 通过ajax插入图片并实时显示(完整代码)8. python flask框架快速入门9. Spring应用抛出NoUniqueBeanDefinitionException异常的解决方案10. 浅谈SpringMVC jsp前台获取参数的方式 EL表达式
