MyBatis 所有的 jdbcType类型

news2024/11/23 12:22:13

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作为实体的日期类型时(JAVA没有DateTime这个类,Date类能够同时表示日期和时间),java.util.Date实际上是能够表示mysql的三种字段类型:

1、date 2、datetime 3、timestamp

三、MyBatis处理方式

而实际将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 常用jdbcType数据类型

1 MyBatis 通过包含的jdbcType类型

BIT         FLOAT      CHAR           TIMESTAMP       OTHER       UNDEFINED

TINYINT     REAL       VARCHAR        BINARY          BLOB        NVARCHAR

SMALLINT    DOUBLE     LONGVARCHAR    VARBINARY       CLOB        NCHAR

INTEGER     NUMERIC    DATE           LONGVARBINARY   BOOLEAN     NCLOB

BIGINT      DECIMAL    TIME           NULL            CURSOR

复制

2 Mybatis中javaType和jdbcType对应和CRUD例子

<resultMap type="java.util.Map" id="resultjcm">
<result property="FLD_NUMBER" column="FLD_NUMBER"  javaType="double" jdbcType="NUMERIC"/>
<result property="FLD_VARCHAR" column="FLD_VARCHAR" javaType="string" jdbcType="VARCHAR"/>
<result property="FLD_DATE" column="FLD_DATE" javaType="java.sql.Date" jdbcType="DATE"/>
<result property="FLD_INTEGER" column="FLD_INTEGER"  javaType="int" jdbcType="INTEGER"/>
<result property="FLD_DOUBLE" column="FLD_DOUBLE"  javaType="double" jdbcType="DOUBLE"/>
<result property="FLD_LONG" column="FLD_LONG"  javaType="long" jdbcType="INTEGER"/>
<result property="FLD_CHAR" column="FLD_CHAR"  javaType="string" jdbcType="CHAR"/>
<result property="FLD_BLOB" column="FLD_BLOB"  javaType="[B" jdbcType="BLOB" />
<result property="FLD_CLOB" column="FLD_CLOB"  javaType="string" jdbcType="CLOB"/>
<result property="FLD_FLOAT" column="FLD_FLOAT"  javaType="float" jdbcType="FLOAT"/>
<result property="FLD_TIMESTAMP" column="FLD_TIMESTAMP"  javaType="java.sql.Timestamp" jdbcType="TIMESTAMP"/>
</resultMap>

复制

3 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[color=red][/color]

复制

4 oracle数据类型和对应的java类型

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

SQL数据类型

JDBC类型代码

标准的Java类型

Oracle扩展的Java类型

1.0标准的JDBC类型:

CHAR

java.sql.Types.CHAR

java.lang.String

oracle.sql.CHAR

VARCHAR2

java.sql.Types.VARCHAR

java.lang.String

oracle.sql.CHAR

LONG

java.sql.Types.LONGVARCHAR

java.lang.String

oracle.sql.CHAR

NUMBER

java.sql.Types.NUMERIC

java.math.BigDecimal

oracle.sql.NUMBER

NUMBER

java.sql.Types.DECIMAL

java.math.BigDecimal

oracle.sql.NUMBER

NUMBER

java.sql.Types.BIT

boolean

oracle.sql.NUMBER

NUMBER

java.sql.Types.TINYINT

byte

oracle.sql.NUMBER

NUMBER

java.sql.Types.SMALLINT

short

oracle.sql.NUMBER

NUMBER

java.sql.Types.INTEGER

int

oracle.sql.NUMBER

NUMBER

java.sql.Types.BIGINT

long

oracle.sql.NUMBER

NUMBER

java.sql.Types.REAL

float

oracle.sql.NUMBER

NUMBER

java.sql.Types.FLOAT

double

oracle.sql.NUMBER

NUMBER

java.sql.Types.DOUBLE

double

oracle.sql.NUMBER

RAW

java.sql.Types.BINARY

byte[]

oracle.sql.RAW

RAW

java.sql.Types.VARBINARY

byte[]

oracle.sql.RAW

LONGRAW

java.sql.Types.LONGVARBINARY

byte[]

oracle.sql.RAW

DATE

java.sql.Types.DATE

java.sql.Date

oracle.sql.DATE

DATE

java.sql.Types.TIME

java.sql.Time

oracle.sql.DATE

TIMESTAMP

java.sql.Types.TIMESTAMP

javal.sql.Timestamp

oracle.sql.TIMESTAMP

2.0标准的JDBC类型:

BLOB

java.sql.Types.BLOB

java.sql.Blob

oracle.sql.BLOB

CLOB

java.sql.Types.CLOB

java.sql.Clob

oracle.sql.CLOB

用户定义的对象

java.sql.Types.STRUCT

java.sql.Struct

oracle.sql.STRUCT

用户定义的参考

java.sql.Types.REF

java.sql.Ref

oracle.sql.REF

用户定义的集合

java.sql.Types.ARRAY

java.sql.Array

oracle.sql.ARRAY

Oracle扩展:

BFILE

oracle.jdbc.OracleTypes.BFILE

N/A

oracle.sql.BFILE

ROWID

oracle.jdbc.OracleTypes.ROWID

N/A

oracle.sql.ROWID

REF CURSOR

oracle.jdbc.OracleTypes.CURSOR

java.sql.ResultSet

oracle.jdbc.OracleResultSet

TIMESTAMP

oracle.jdbc.OracleTypes.TIMESTAMP

java.sql.Timestamp

oracle.sql.TIMESTAMP

TIMESTAMP WITH TIME ZONE

oracle.jdbc.OracleTypes.TIMESTAMPTZ

java.sql.Timestamp

oracle.sql.TIMESTAMPTZ

TIMESTAMP WITH LOCAL TIME ZONE

oracle.jdbc.OracleTypes.TIMESTAMPLTZ

java.sql.Timestamp

oracle.sql.TIMESTAMPLTZ

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/597137.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【SpringCloud】1.一文带你入门SpringCloud微服务

文章目录 1. 搭建父工程2. 搭建注册中心3. 搭建一个服务提供者4. 搭建一个服务消费者5. 整合OpenFeign实现服务之间的调用 1. 搭建父工程 最近打算使用 springcloud 搭建微服务玩一下&#xff0c;用到的东西大致有以下这些&#xff1a; jdk 1.8idea 2019maven 3.6.3springclo…

CS5466应用电路图|CS5466设计方案原理图|TypeC转HDMI8K30HZ(4K144HZ)芯片方案原理图

CS5466支持dsc1.1/12a压缩视频传输&#xff0c;是一款Type-C转HDMI8K30HZ或者4K144HZ方案芯片&#xff0c;其设计原理图如下&#xff1a; CS5466 Type-C/DP1.4转HDMI2.1的显示协议转换芯片, 内部集成了PD3.0及DSC decoder&#xff0c;可支持DP 2Lane最高8K30或4K144, 并能按客户…

拉取maven项目 pom出现 The <project> element is the root of the descriptor.

引入将各个module 修改JDK版本为1.8&#xff0c;然后再修改 Perferences -> Build -》Compiler -> Java Compiler各个版本&#xff0c;对各个项目改为1.8

Docker容器学习笔记

一、初始Docker 实质上&#xff1a;是将开发的代码和运行环境打包成一个容器。解决开发&#xff08;开发环境&#xff09;、测试&#xff08;测试环境&#xff09;、运维&#xff08;生产环境&#xff09;之间的沟通交流。 1.1Docker的概念 docker&#xff1a;解决跨环境迁移…

B. 广告投放

B. 广告投放 Problem - B - Codeforces 思路&#xff1a;对于这个题来说&#xff0c;我们很容易可以想到是一个dp问题&#xff0c;我们可以使用f[i][j]表示我们已经处理了前i-1个问题&#xff0c;并且当前剩余的人数是j的情况下&#xff0c;能够得到的最大的收益&#xff0c;那…

共享内存(内存映射的使用、注意事项、进程间通信、systemV共享内存)

一、内存映射 概念&#xff1a;使一个磁盘文件与内存中的一个缓冲区相映射&#xff0c;进程可以像访问普通内存一样对文件进行访问&#xff0c;不必再调用read,write。 mmap()的优点&#xff1a; 实现了用户空间和内核空间的高效交互方式 二、函数定义 void *mmap(void *ad…

PMP课堂模拟题目及解析(第17期)

161. 项目发起人任命一位高级工程师到指导委员会&#xff0c;来帮助监督项目管理计划。该工程师经常不同意由项目团队制定的计划&#xff0c;并在提交批准之前对项目管理计划表达严重关切。项目经理应该怎么做&#xff1f; A. 通知项目发起人&#xff0c;该工程师延迟了规划过程…

2、Kingbase - 修改密码报错

情况 Kingbase数据库修改密码后&#xff0c;重新连接失败 提示信息 致命错误: 用户 "system" Password 认证失败 (kbjdbc: autodetected server-encoding to be GB2312, if the message is not readable, please check database logs and/or host, port, dbname, u…

软件外包开发项目管理工具

随着软件项目的规模越做越大&#xff0c;项目管理人员需要使用工具管理项目进度&#xff0c;从而更有成效的管理好软件开发进度。软件开发的进度管理工具有很多&#xff0c;今天和大家分享一些常用的系统工具&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xf…

phpStudy2018 mysql启动失败问题

phpStudy2018 mysql启动失败问题 1.winR运行窗口输入services.msc&#xff0c;检查服务里面有MySQLa没有。 有&#xff0c;就打开服务 没有&#xff0c;就打开phpstudy面板&#xff0c;点击其他选项菜单——>服务管理器——>MySQL——>安装服务&#xff1b;然后刷新…

C++ 继承 文字+图片+代码 超详细解刨

什么是继承&#xff1f; 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保持原有类特性的基础上进行扩展&#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称派生类。 继承呈现了面向对象程序设计的层次结构&am…

二十分钟入门计算机视觉开源神器——课堂笔记

1&#xff0c;统一的深度学习框架&#xff0c;2.0 2&#xff0c;现状 3&#xff0c;代表算法库 &#xff08;1&#xff09;目标检测MMDetection 任务支持&#xff1a;目标家呢&#xff0c;实力分割&#xff0c;全景分割 覆盖广泛 算法丰富 使用方便 &#xff08;2&#xff0…

2023年Q1美团财报解读:拨开云雾 始见月明

原文出处&#xff1a;走马财经 5月底&#xff0c;随着京东、阿里巴巴、腾讯、快手、拼多多、美团等相继发布财报&#xff0c;中国互联网主流大公司的财报发布季结束。 一方面他们体量够大&#xff0c;另一方面他们要么深耕零售&#xff0c;要么与零售、消费息息相关&#xff…

复原IP地址-回溯

1题目 有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&#xff09;&#xff0c;整数之间用 . 分隔。 例如&#xff1a;"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址&#xff0c;但是 "0.01…

17-Vue3中其它的 Composition API

目录 1、shallowReactive 与 shallowRef2、readonly 与 shallowReadonly3、toRaw 与 markRaw4、customRef5、provide 与 inject6、响应式数据的判断7、Composition API 的优势7.1 Options API 存在的问题7.2 Composition API 的优势 1、shallowReactive 与 shallowRef shallowR…

华为OD机试真题 Java 实现【快速开租建站】【2023Q1 200分】,附详细解题思路

一、题目描述 当前IT部门支撑了子公司颗粒化业务&#xff0c;该部门需要实现为子公司快速开租建站的能力&#xff0c;建站是指在一个全新的环境部署一套IT服务。 每个站点开站会由一系列部署任务项构成&#xff0c;每个任务项部署完成时间都是固定和相等的&#xff0c;设为1。…

细看SLMi823x系列SLMi8233BD双通道隔离驱动在 OBC 上的典型应用

数明深力科SLMi823x系列SLMi8233BD隔离驱动技术优势&#xff1a;具有高性能、高性价比、高可靠性的产品特性&#xff0c;应用覆盖UPS、充电桩、服务器电源、通信电源、新能源汽车动力总成系统的车载 OBC 领域。通过CQC认证的。 车载充电器&#xff08;OBC&#xff09;是电动汽…

如何研究带有不可微项的目标函数的局部极小值?

以optimtool的算法为例来解释 在Python >3.7的编程环境下&#xff0c;按如下方式下载optimtool&#xff0c;一个基于符号微分与数值近似的优化方法库&#xff1a; pip install optimtool --upgrade pip install optimtool>2.4.2目前没有为目标函数中不可微项增加预处理…

golang http请求封装

http请求封装在项目中非常普遍&#xff0c;下面笔者封装了http post请求传json、form 和get请求&#xff0c;以备将来使用 1、POST请求 1.1、POST请求发送 json 这里发送json笔者使用了2种方式&#xff0c;一种是golang 自带的 http.Post方法&#xff0c;另一是 http.NewReq…

iphone苹果手机如何备份整个手机数据?

手机上的数据变得越来越重要&#xff0c;大家也越来越注重数据安全。如果手机设备丢失的话&#xff0c;不仅是设备的丢失&#xff0c;还是数据的丢失。因此&#xff0c;备份数据就显得很重要。那么&#xff0c;iphone如何备份整个手机&#xff0c;苹果怎么查备份的照片&#xf…