MyBatis中的JdbcType映射介绍

Java项目涉及到数据库交互,以往常用的是JDBC,现在则有Hibernate、Mybatis等这些持久化支持。 项目中用到了MyBatis,和JDBC最显著的区别,就是SQL语句配置化,通过xml文件定义SQL语句,当然JDBC也可以将SQL配置化,需要定制开发,MyBatis则直接支持这种方法。 官方对于MyBatis的介绍,MyBatisisafirstclas…

大家好,又见面了,我是你们的朋友全栈君。

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

MyBatis中的JdbcType映射介绍

 

另外,这篇文章,给出了JdbcType和Oracle以及MySQL,相互之间的映射关系,比较详细,引自:http://blog.csdn.net/loongshawn/article/details/50496460

  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
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125264.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数据库设计工具—–PD

    数据库设计工具—–PD数据库设计工具—–PDPowerDesign是一款功能强大的建模软件,提供强大的元数据管理功能,可以帮助用户构建关键信息的全方位视图,创建多种类型的模型,包括数据模型,物理模型,面向对象模型等等。同时继承了数据管理、BL、数据集成和数据整合多种功能。这是一款收费软件安装完成后,就来介绍一下基本使用。注意:这是一款功能非常非常非常强大的软件,我们只是介绍一下一小部分我们数据库用到的功能。进入软件后界面如下:我们点击file->然后创建一个model(模型)。然后创建一个物理

    2022年7月11日
    27
  • python 如何安装numpy库?

    python 如何安装numpy库?我正在参与CSDN200进20,希望得到您的支持,扫码续投票5次。感谢您!(为表示感谢,您投票后私信我,我把我总结的人工智能手推笔记和思维导图发送给您,感谢!)首先我们要找到python安装的位置win+R打开进入以后输入:wherepython找到安装目录后,找到Scripts文件夹所在位置:如Programs\Python\Python36\Scripts…

    2022年9月28日
    0
  • datagrid 2021.1激活码破解方法

    datagrid 2021.1激活码破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    78
  • 《TCP/IP具体解释卷2:实现》笔记–IP:网际协议

    《TCP/IP具体解释卷2:实现》笔记–IP:网际协议

    2022年2月5日
    53
  • 什么是跨域?什么情况下会发生跨域请求?

    什么是跨域?什么情况下会发生跨域请求?跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。同源策略:所谓同源是指:协议,域名,端口均相同。即便两个不同的域名指向同一个ip地址,也非同源。http://www.123.com/index.html调用http://www.123.com/server.php(非跨域)http://www.123.com/index.html调用http://www.456.com/server.php(主域名不同:123/456,跨域)http:/

    2022年5月29日
    57
  • python安装依赖包经常出错怎么办_python不兼容无法安装

    python安装依赖包经常出错怎么办_python不兼容无法安装请按顺序进行依次执行.1、更新pip:python-mpipinstall–upgradepip-ihttps://pypi.tuna.tsinghua.edu.cn/simple2.、强制更新pippython-mpipinstall-U–force-reinstallpip3、安装依赖,示例:安装sip库:pipinstallsip-ihttps://pypi.tuna.tsinghua.edu.cn/simple……

    2022年10月2日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号