MyBatis JdbcType介绍

JdbcType介绍

数据库列字段都是有类型的,不同的数据库有不同的类型。为了表示这些数据类型,Java源码是采用枚举来定义的:

public enum JDBCType implements SQLType {TINYINT(Types.TINYINT),SMALLINT(Types.SMALLINT),INTEGER(Types.INTEGER)
}

枚举变量也是有类型的,也是有值的,正如整数变量是整数类型,也有值大小一样,上述枚举变量值的定义是通过Types来描述刻画的。

public class Types {public final static int TINYINT         =  -6;public final static int SMALLINT        =   5;public final static int INTEGER         =   4;
}

MyBatis包含的JdbcType类型,主要有下面这些,大致了解一下即可:

BIT、FLOAT、CHAR 、TIMESTAMP 、 OTHER 、UNDEFINEDTINYINT 、REAL 、VARCHAR 、BINARY 、BLOB NVARCHAR、SMALLINT 、DOUBLE 、LONGVARCHAR 、VARBINARY 、CLOB、NCHAR、INTEGER、 NUMERIC、DATE 、LONGVARBINARY 、BOOLEAN 、NCLOB、BIGINT 、DECIMAL 、TIME 、NULL、CURSOR

上述JdbcType类型和Java类型的对应关系,可以参照下面的列表,不过不同数据库的JdbcType多少有些出入,请注意即可。

JDBC Type           Java Type
CHAR                String
VARCHAR             String
LONGVARCHAR         String
NUMERIC             java.math.BigDecimal
DECIMAL             java.math.BigDecimal
BIT                 boolean
BOOLEAN             boolean
TINYINT             byte
SMALLINT            short
INTEGER             INTEGER
BIGINT              long
REAL                float
FLOAT               double
DOUBLE              double
BINARY              byte[]
VARBINARY           byte[]
LONGVARBINARY       byte[]
DATE                java.sql.Date
TIME                java.sql.Time
TIMESTAMP           java.sql.Timestamp
CLOB                Clob
BLOB                Blob
ARRAY               Array
DISTINCT            mapping of underlying type
STRUCT              Struct
REF                 Ref
DATALINK            java.net.URL

JdbcType类型的作用

在Mybatis明文建议在映射字段数据时需要将JdbcType属性加上,这样相对来说是比较安全的。

<insert id="saveRole">insert into role values (#{roleId},#{name},#{remarks},#{orderNo},#{createBy,jdbcType=VARCHAR},#{createDept,jdbcType=VARCHAR},#{createTime,jdbcType=DATE},#{updateBy,jdbcType=VARCHAR},#{updateTime,jdbcType=DATE})
</insert>

这样,保证了前四种是不能为空的前提下,而后面几项为空时也不至于程序报错。如果createBy为空,插入的时候mybatis不知道具体转换成什么jdbcType类型,通常会使用一个默认设置,虽然默认配置一般情况下不会出错,但是遇到个别情况还是会有问题的。Mybatis经常出现的:无效的列类型: 1111 错误,就是因为没有设置JdbcType造成的。

MyBatis JdbcType介绍相关推荐

  1. mybatisplus 结果_Java之MyBatis Plus介绍

    Java之MyBatis Plus介绍 1.MyBatis Plus 介绍 MyBatis Plus 是国内人员开发的 MyBatis 增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开 ...

  2. MyBatis-学习笔记01【01.Mybatis课程介绍及环境搭建】

    Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...

  3. Mybatis JdbcType与Oracle、MySql,javaType数据类型对应列表

    Mybatis JdbcType与Oracle.MySql数据类型对应列表  Mybatis JdbcType Oracle MySql JdbcType ARRAY     JdbcType BIG ...

  4. 1. MyBatis框架介绍

    1. MyBatis框架介绍 1. 框架概述 程序开发中框架(framework)往往是对常见功能的封装,可以把框架理解为软件的设计规范或者标准化的组件,好比机械中的螺丝螺母等标准的机械部件 假如你要 ...

  5. Java MyBatis的介绍及其执行原理

    写在前面 ??MyBatis学习 ??今天我们进行MyBatis框架的学习,认识MyBatis及其执行原理,感谢你的阅读,内容若有不当之处,希望大家多多指正,一起进步!!! 如果觉得博主文章还不错,可 ...

  6. mybatis jdbctype数据类型_mybaits-mybatis配置

    一 前言 这篇文章涵盖了大量的mybatis配置,读懂一篇,收益终身. 二 properties配置 之前发布的文章中配置数据库连接信息是直接写入到mybatis-config.xml:为了使用灵活方 ...

  7. MyBatis详细介绍

    MyBatis基础入门 内容 1.MyBatis介绍 2.MyBatis入门程序 3.MyBatis使用Mapper接口 4.MyBatis之Config文件常用配置 一.MyBatis简介 1 .简 ...

  8. mybatis jdbcType 对应javaType

    MyBatis 通过包含的jdbcType类型BIT FLOAT CHAR TIMESTAMP OTHER UNDEFINEDTINYINT REAL VARCHAR BINARY BLOB NVAR ...

  9. 【java学习之路】(java框架)003.Mybatis的介绍和基本使用

    01Mybatis的介绍和基本使用 0.数据库操作框架的历程 (1) JDBC ​ JDBC(Java Data Base Connection,java数据库连接)是一种用于执行SQL语句的Java ...

最新文章

  1. 修改mysql数据库默认编码为utf8
  2. date日期相减 java_03时间日期类
  3. python【蓝桥杯vip练习题库】ADV-303 数组求和
  4. docker add-host hostAliases配置/etc/hosts
  5. Swift基础语法 、 元组(Tuple)
  6. 六十八、快速幂算法、牛顿迭代法、累加数组+二分查找的变形
  7. 关于 SAP Spartacus Loader Meta Reducer 的用途 - loading 在 true 和 false之前切换的逻辑
  8. [Swift]LeetCode1118. 一月有多少天 | Number of Days in a Month
  9. 清空mysql数据库所有表数据_清空数据库所有表数据mysql
  10. 电子元器件的识别与换算
  11. (泰勒展开式/欧拉公式)证明:e^x推导及e^(iπ) = -1展开过程
  12. 职场险恶,程序员看完都惊呆了
  13. video.js播放m3u8视频
  14. 计算机在表格底部插入一空行怎么弄,简单高效的Excel技巧,表格隔行插入空行,这两种方法很实用...
  15. 用Python开始机器学习(6:朴素贝叶斯分类器)
  16. 红米note7支持html,红米Note7支持NFC功能吗 红米Note7支持NFC刷公交吗?附方法
  17. 用python写一个基于直方图比图的代码
  18. 基于STM32F407结合HC-SR04、TCRT5000模块 设计的智能小车(下篇)
  19. 关于ssm框架的外文文献及译文_国外文献摘译||pH敏感微胶囊封装硝酸铈环氧涂料的防腐研究...
  20. python编程100例体育课排队-浅析材料化学在生活中的应用

热门文章

  1. java 逻辑表达式 布尔_使用基本逻辑门实现布尔表达式
  2. qc35 说明书_使用Bose QC35 2年的心得 | 迟而不迟的深度体验 | 文附佩戴效果照片...
  3. for each循环_Power Query — 循环初步
  4. in-nan(ind)_NaN16 Constant in Julia
  5. as_hash ruby_Ruby中带有示例的Hash.keep_if方法
  6. java方法重载和重载方法_我们可以在Java中重载main()方法吗?
  7. Java Currency getInstance()方法与示例
  8. 漫画:给女朋友介绍什么是 “元宇宙” ?
  9. matlab for循环太慢,Matlab中每个for循环迭代的速度降低
  10. 用FileZilla Server搭建ftp服务器