首页 > 编程语言 >MyBatis所有的jdbcType类型对应的javaType类型

MyBatis所有的jdbcType类型对应的javaType类型

时间:2024-04-23 17:47:08浏览次数:24  
标签:00 01 java javaType DATE jdbcType MyBatis

来源:https://www.jb51.net/program/287517rew.htm
MyBatis处理MySQL字段类型date与datetime
1) DATETIME
显示格式:yyyy-MM-dd HH:mm:ss
时间范围:[ '1000-01-01 00:00:00'到'9999-12-31 23:59:59']

2) DATE
显示格式:yyyy-MM-dd
时间范围:['1000-01-01'到'9999-12-31']

3) TIMESTAMP
显示格式:yyyy-MM-dd HH:mm:ss
时间范围:[ '1970-01-01 00:00:00'到'2037-12-31 23:59:59']

一、 MyBatis处理日期有两种的jdbcType:
1、jdbcType=DATE
2、jdbcType=TIMESTAMP

二、JAVA中只有一种日期类型 DateTime
java.util.Date实际上是能够表示mysql的三种字段类型:
1、date
2、datetime
3、timestamp
而实际将java.util.Date当做参数传递给Mapper的时候
1、假如我们不指定jdbcType,那么这个日期会自动转化会MySQL的timestamp,例子如下:
2、指定jdbcType=TIMESTAMP结果同上。
3、指定jdbcType=DATE,那么MyBatis会将传入参数截取为2018-07-24(Date)
四、总结
使用java.util.Date作为参数传递给Mapper时,不管MySQL的日期字段类型是date、datetime或者timestamp中的哪一种,MyBatis都能够自动做出类型转换,可以直接使用 =、>、<、>=、<=符号来进行筛选。
唯一的不同点是指定jdbcType=DATE的时候,MyBatis会自动截取掉时间,如果MySQL的日期字段类型是datetime或者timestamp一定不要这么写。
总之不手动指定参数的jdbcType必然没有问题。

Mybatis中javaType和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 int
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

oracle数据类型和对应的java类型
用mybatis generator生成代码后,执行查询语句时,oracle里的Date类型字段只精确到年月日,后面时分秒都为零。 jdbcType=”DATE”时候,存入到数据库中的字段只有年月日! 后来发现是jdbcType问题,改成 jdbcType=“TIMESTAMP” 就可以。(原先默认生成时是jdbcType=“DATE”)

标签:00,01,java,javaType,DATE,jdbcType,MyBatis
From: https://www.cnblogs.com/xsj1989/p/18153401

相关文章

  • 为什么Mybatis Mapper不需要实现类?
    在学习Java动态代理之前,我想让大家先思考这样几个问题。JDK动态代理为什么不能对类进行代理?MybatisMapper接口为什么不需要实现类?目录代理模式说到Java动态代理,就不得不提代理模式。为什么要使用代理模式呢?生活中对代理模式的使用无处不在,例如明星经纪人对明星业务的代理;......
  • mybatisplus分页中,模糊匹配一个字符串在列a或者列b下都可以筛选出的写法
    话不多说,直接上代码,and那句就对了LambdaQueryWrapper<类>wrapper=newLambdaQueryWrapper<类>().in(逻辑内容).like(正常逻辑内容).and(wrapperNew->wrapperNew.like(StringUtils.isNotEmpty(filter.getLocation()),......
  • 最近火起的 Bean Searcher 与 MyBatis Plus 到底有啥区别?
    上篇:我这样写代码,比直接使用MyBatis效率提高了100倍欢迎公众号转载,但请转 当前最新版 并在显眼处 标明作者 与 注明出处。如果你喜欢本文也欢迎转发分享^_^BeanSearcher号称任何复杂的查询都可以一行代码搞定,但MybatisPlus似乎也有类似的动态查询功能,它们......
  • mybatis-plus 代码生成器步骤
    mybatis-plus代码生成器步骤:1.添加依赖到pom.xml<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.4.1</version></dependency>&l......
  • MyBatis 核心配置讲解(上)
    大家好,我是王有志,一个分享硬核Java技术的互金摸鱼侠。前两篇的文章中我们分别介绍了MyBatis和MyBaits的应用组成,到这里基础篇的内容就结束了。从今天开始,我们正式进入MyBatis学习的第二阶段:MyBatis的应用部分。这个阶段从MyBatis应用程序的核心配置文件mybatis-conf......
  • mybatis
    1.MyBatis简介1.1什么是MyBatisMyBatis是一款优秀半自动化的持久层框架,轻量级框架他支持定制SQL,存储过程以及高级映射MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集MyBatis可以使用简单的XML或注解来配置和映射原生类型,接口和JAVA的POJO为数据库中的记录。......
  • MyBatis: databaseId的用法
    可以通过databaseId来区分执行的SQL是在MySQL上还是在Oracle上。一、在配置文件mybatis-config中配置databaseId:<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig3.0//EN""http://......
  • SpringBoot 3.1.10 整合Mybatis-plus(快速学会)
    一、简介1、什么是Mybatis-plus?Mybatis-Plus(简称MP)是一个Mybatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。官网:https://baomidou.com/2、Mybatis-plus特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动......
  • mybatisplus常用写法
    一、QueryWrapper和LambdaQueryWrapper的区别写法和表达方式不同:QueryWrapper:使用传统的字符串形式构建查询条件,通过支持链式调用的方式,可以方便地拼接多个查询条件。LambdaQueryWrapper:使用Lambda表达式构建查询条件,可以通过实体类的属性和方法来安全地编写查询条件,减少犯......
  • mybatis-plus分页插件使用(springboot)
    1、添加依赖、、、2、自定义一个配置类importcom.baomidou.mybatisplus.annotation.DbType;importcom.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;importcom.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;importorg.sp......