MyBatis 所有的 jdbcType类型

MyBatis 所有的 jdbcType类型

MyBatis处理MySQL字段类型date与datetime代码语言:javascript代码运行次数:0运行复制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类型代码语言:javascript代码运行次数:0运行复制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 CURSOR2 Mybatis中javaType和jdbcType对应和CRUD例子代码语言:javascript代码运行次数:0运行复制

3 Mybatis中javaType和jdbcType对应关系代码语言:javascript代码运行次数:0运行复制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

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

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

相关推荐

365bet官方网站下载 使用微PE工具箱安装Win7

使用微PE工具箱安装Win7

📅 07-26 👁️ 254
365bet官方网站下载 微信机器人定制开发成本深度解析:价格构成及选择建议

微信机器人定制开发成本深度解析:价格构成及选择建议

📅 08-25 👁️ 5872
365在线体育app下载 如何在微信中设置消息不显示内容的详细步骤

如何在微信中设置消息不显示内容的详细步骤

📅 08-04 👁️ 1053
365在线体育app下载 拉杆箱哪个品牌性价比高?五大优质品牌推荐!

拉杆箱哪个品牌性价比高?五大优质品牌推荐!

📅 09-25 👁️ 4046