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,

resultType="java.lang.String">

select a.meetingno

from xxx a

where a.companyid = #{companyid, jdbcType=BIGINT}

另外,以下介绍给出了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官方文档是很有必要的!

3. 说明

对于自己不肯定的,调整代码多尝试下,能够使自己加深印象!

4. 更新日志

2017-04-26 修改内容:MySQL中没有CLOB类型,谢谢@火灵 指正。

Mybatis

JdbcType

Oracle

MySql

JdbcType

CLOB

CLOB

CLOB–>修改为TEXT

以上这篇MyBatis中的JdbcType映射使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

mysql在xml中jdbctype,MyBatis中的JdbcType映射使用详解相关推荐

  1. mysql resulttype map_Mybatis中的resultType和resultMap查询操作实例详解

    resultType和resultMap只能有一个成立,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,resultMap解决复杂查询是的映射问题.比 ...

  2. mysql小计_Mysql必读用SQL实现统计报表中的小计与合计的方法详解

    <Mysql必读用SQL实现统计报表中的"小计"与"合计"的方法详解>要点: 本文介绍了Mysql必读用SQL实现统计报表中的"小计&qu ...

  3. mysql isnull()_MySql中的IFNULL、NULLIF和ISNULL用法详解

    今天用到了MySql里的isnull才发现他和MSSQL里的还是有点区别,现在简单总结一下: mysql中isnull,ifnull,nullif的用法如下: isnull(expr) 的用法: 如e ...

  4. revoke mysql_浅谈MySQL中授权(grant)和撤销授权(revoke)用法详解

    MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利 grant selec ...

  5. mysql revoke 授权_浅谈MySQL中授权(grant)和撤销授权(revoke)用法详解

    MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利 grant selec ...

  6. python数组相减_对Python 中矩阵或者数组相减的法则详解

    对Python 中矩阵或者数组相减的法则详解 最近在做编程练习,发现有些结果的值与答案相差较大,通过分析比较得出结论,大概过程如下: 定义了一个计算损失的函数: def error(yhat,labe ...

  7. java中属性文件读取案例_java相关:Spring中属性文件properties的读取与使用详解

    java相关:Spring中属性文件properties的读取与使用详解 发布于 2020-6-3| 复制链接 摘记: Spring中属性文件properties的读取与使用详解实际项目中,通常将一些 ...

  8. android启动页使用gif,android中使用react-native设置应用启动页过程详解

    一.背景 在我们使用react-native进行编写代码的时候,当启动应用的时候,我们会看到如下界面 然而,这样的启动界面是非常的不又好,那么我们该怎么进行处理启动界面呢?有如下两种方案 二.方案 1 ...

  9. decimal类型对象里面定义什么类型_MySQL中Decimal类型和Float Double的区别(详解)

    MySQL中存在float,double等非标准数据类型,也有decimal这种标准数据类型. 其区别在于,float,double等非标准类型,在DB中保存的是近似值,而Decimal则以字符串的形 ...

最新文章

  1. 字符串截取,对数字,英文,汉字都可以
  2. root域名服务器 gtld服务器_购买阿里云域名和空间服务器实操
  3. 用java正则表达式验证字符串(邮箱与网址)
  4. 高可用mysql笔记_MySQL笔记-高可用方案
  5. centos7安装mysql允许远程连接_CentOS7安装Mysql并配置远程访问
  6. 附录:保护模式下的各个“对象”
  7. 什么叫AI优先?不如你看谷歌CEO的办公位在哪儿
  8. android中倒计时控件CountDownTimer分析
  9. php_字符编码浅谈_积累中。。。
  10. Linux常用网络带宽监控工具(转)
  11. 方差分析软件_手把手教你用Graphpad做单因素方差分析
  12. python 下载股票数据_「Python量化资料」用Python抓取Yahoo、investing平台股票数据
  13. 在线就能用的 SQL 练习平台我给你找好了
  14. 支付宝、京东支付场景之策略模式实战
  15. 汇编语言属于计算机科学,汇编语言是一种依赖于计算机的低级程序设计语言吗...
  16. [原创摄影]西藏行(一)从不同角度看布达拉
  17. 劳埃镜 matlab,光学习题及答案
  18. 《聪明的投资者》摘要——价值投资的起点
  19. hive使用,及语法
  20. 网易互娱2017实习生招聘在线笔试第一场-2源代码编译

热门文章

  1. bootstrap分页插件php,bootstrap paginator分页插件使用方法
  2. 2020最新的新浪短网址(T.CN短链接)API接口分享
  3. 基于fluxion 6.9 钓鱼wifi
  4. linux 内核开发huu红山竹发布于 2019-12-23linux的体系结构
  5. java幻灯机效果,java多种幻灯片切换特效(经典),java幻灯片切换特效
  6. 如何优雅的用 Markdown 画流程图
  7. JQ中prop与attr区别
  8. Unity向量按照某一点进行旋转
  9. Escript氨基酸对比图怎么看_23张和田玉真假皮色对比图,看懂了再也不怕被坑
  10. 国内银行接连爆出数据泄露事件,金融行业如何在源头处建立防线