欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談MyBatis所有的jdbcType類型

 更新時(shí)間:2023年06月06日 09:33:33   作者:欒還是戀  
在Mybatis中JdbcType類型是一個(gè)枚舉類型,它包含了所有的JDBC數(shù)據(jù)類型,如VARCHAR、INTEGER、DATE等,本文主要介紹了淺談MyBatis所有的jdbcType類型,具有一定的參考價(jià)值,感興趣的可以了解一下

MyBatis處理MySQL字段類型date與datetime

1) DATETIME
顯示格式:yyyy-MM-dd HH:mm:ss
時(shí)間范圍:[ '1000-01-01 00:00:00'到'9999-12-31 23:59:59']

2) DATE
顯示格式:yyyy-MM-dd
時(shí)間范圍:['1000-01-01'到'9999-12-31']

3) TIMESTAMP
顯示格式:yyyy-MM-dd HH:mm:ss
時(shí)間范圍:[ '1970-01-01 00:00:00'到'2037-12-31 23:59:59']

一、 MyBatis處理日期有兩種的jdbcType:

1、jdbcType=DATE

2、jdbcType=TIMESTAMP

二、JAVA中只有一種日期類型 DateTime

當(dāng)我們使用java.util.Date作為實(shí)體的日期類型時(shí)(JAVA沒(méi)有DateTime這個(gè)類,Date類能夠同時(shí)表示日期和時(shí)間),java.util.Date實(shí)際上是能夠表示mysql的三種字段類型:

1、date

2、datetime

3、timestamp

三、MyBatis處理方式

而實(shí)際將java.util.Date當(dāng)做參數(shù)傳遞給Mapper的時(shí)候

1、假如我們不指定jdbcType,那么這個(gè)日期會(huì)自動(dòng)轉(zhuǎn)化會(huì)MySQL的timestamp,例子如下:

2、指定jdbcType=TIMESTAMP結(jié)果同上。

3、指定jdbcType=DATE,那么MyBatis會(huì)將傳入?yún)?shù)截取為2018-07-24(Date)

四、總結(jié)

使用java.util.Date作為參數(shù)傳遞給Mapper時(shí),不管MySQL的日期字段類型是date、datetime或者timestamp中的哪一種,MyBatis都能夠自動(dòng)做出類型轉(zhuǎn)換,可以直接使用 =、>、<、>=、<=符號(hào)來(lái)進(jìn)行篩選。 唯一的不同點(diǎn)是指定jdbcType=DATE的時(shí)候,MyBatis會(huì)自動(dòng)截取掉時(shí)間,如果MySQL的日期字段類型是datetime或者timestamp一定不要這么寫(xiě)。 總之不手動(dòng)指定參數(shù)的jdbcType必然沒(méi)有問(wèn)題

MyBatis 常用jdbcType數(shù)據(jù)類型

1 MyBatis 通過(guò)包含的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對(duì)應(yīng)和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對(duì)應(yīng)關(guān)系

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數(shù)據(jù)類型和對(duì)應(yīng)的java類型

用mybatis generator生成代碼后,執(zhí)行查詢語(yǔ)句時(shí),oracle里的Date類型字段只精確到年月日,后面時(shí)分秒都為零。 jdbcType=”DATE”時(shí)候,存入到數(shù)據(jù)庫(kù)中的字段只有年月日! 后來(lái)發(fā)現(xiàn)是jdbcType問(wèn)題,改成 jdbcType=“TIMESTAMP” 就可以。(原先默認(rèn)生成時(shí)是jdbcType=“DATE”)

SQL數(shù)據(jù)類型

JDBC類型代碼

標(biāo)準(zhǔn)的Java類型

Oracle擴(kuò)展的Java類型

1.0標(biāo)準(zhǔn)的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標(biāo)準(zhǔn)的JDBC類型:

BLOB

java.sql.Types.BLOB

java.sql.Blob

oracle.sql.BLOB

CLOB

java.sql.Types.CLOB

java.sql.Clob

oracle.sql.CLOB

用戶定義的對(duì)象

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擴(kuò)展:

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

到此這篇關(guān)于淺談MyBatis所有的jdbcType類型的文章就介紹到這了,更多相關(guān)MyBatis jdbcType類型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談Tomcat三種運(yùn)行模式

    淺談Tomcat三種運(yùn)行模式

    這篇文章主要介紹了淺談Tomcat三種運(yùn)行模式,小編冒昧將兩篇文章略微整合了一下,有不足的地方,歡迎指出。需要的朋友可以參考。
    2017-10-10
  • SpringBoot項(xiàng)目jar發(fā)布后如何獲取jar包所在目錄路徑

    SpringBoot項(xiàng)目jar發(fā)布后如何獲取jar包所在目錄路徑

    這篇文章主要介紹了SpringBoot項(xiàng)目jar發(fā)布后如何獲取jar包所在目錄路徑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java中字符串常見(jiàn)的一些拼接方式總結(jié)

    Java中字符串常見(jiàn)的一些拼接方式總結(jié)

    字符串拼接是我們?cè)贘ava代碼中比較經(jīng)常要做的事情,就是把多個(gè)字符串拼接到一起,下面這篇文章主要給大家總結(jié)介紹了關(guān)于Java中字符串常見(jiàn)的一些拼接方式,需要的朋友可以參考下
    2023-04-04
  • 如何在MyBatis中使用XML和注解混合配置過(guò)程

    如何在MyBatis中使用XML和注解混合配置過(guò)程

    這篇文章主要介紹了如何在MyBatis中使用XML和注解混合配置過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • 一文徹底吃透SpringMVC中的轉(zhuǎn)發(fā)和重定向

    一文徹底吃透SpringMVC中的轉(zhuǎn)發(fā)和重定向

    大家應(yīng)該都知道springmvc本來(lái)就會(huì)把返回的字符串作為視圖名解析,然后轉(zhuǎn)發(fā)到對(duì)應(yīng)的視圖,這篇文章主要給大家介紹了關(guān)于SpringMVC中轉(zhuǎn)發(fā)和重定向的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • Springboot實(shí)現(xiàn)多線程及線程池監(jiān)控

    Springboot實(shí)現(xiàn)多線程及線程池監(jiān)控

    線程池的監(jiān)控很重要,本文就來(lái)介紹一下Springboot實(shí)現(xiàn)多線程及線程池監(jiān)控,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • Java模擬QQ桌面截圖功能實(shí)現(xiàn)方法

    Java模擬QQ桌面截圖功能實(shí)現(xiàn)方法

    這篇文章主要介紹了Java模擬QQ桌面截圖功能實(shí)現(xiàn)方法,涉及java針對(duì)鼠標(biāo)事件及圖片操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • Springboot+WebSocket實(shí)現(xiàn)在線聊天功能

    Springboot+WebSocket實(shí)現(xiàn)在線聊天功能

    WebSocket協(xié)議是基于TCP的一種新的網(wǎng)絡(luò)協(xié)議。這篇文章主要為大家介紹了如何利用Springboot和WebSocket實(shí)現(xiàn)在線聊天功能,感興趣的小伙伴可以了解一下
    2023-02-02
  • mybatis-plus攔截器、字段填充器、類型處理器、表名替換、SqlInjector(聯(lián)合主鍵處理)

    mybatis-plus攔截器、字段填充器、類型處理器、表名替換、SqlInjector(聯(lián)合主鍵處理)

    本文主要介紹了mybatis-plus攔截器、字段填充器、類型處理器、表名替換、SqlInjector(聯(lián)合主鍵處理),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Java中int和Integer的區(qū)別

    Java中int和Integer的區(qū)別

    這篇文章主要介紹的是?Java中int和Integer的區(qū)別,Java?是一種強(qiáng)數(shù)據(jù)類型的語(yǔ)言,因此所有的屬性必須有一個(gè)數(shù)據(jù)類型,下面文章基于Java詳細(xì)int和Integer有何區(qū)別,需要的朋友可以參考一下
    2021-11-11

最新評(píng)論