日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

《MyBatis用戶指南》-自定義帶參數(shù)的類型轉(zhuǎn)換器 typeHandler

 CevenCheng 2012-04-28

   類型別名只是一個更短的Java類型名。它只和xml配置有關(guān),并且僅僅是為了縮減冗余的全限定類名的輸入量,例如:

   

 

  

   使用這個配置,"Blog"現(xiàn)在可以在任何"domain.blog.Blog"可以出現(xiàn)的地方使用。

   有許多內(nèi)建的常用Java類型的別名,它們是大小寫不敏感的,考慮到重載的名稱問題,要注意對于原始類型的特殊處理。

 

 

Alias

Mapped Type

_byte

byte

_long

long

_short

short

_int

int

_integer

int

_double

double

_float

float

_boolean

boolean

string

String

byte

Byte

long

Long

short

Short

int

Integer

integer

Integer

double

Double

float

Float

boolean

Boolean

date

Date

decimal

BigDecimal

bigdecimal

BigDecimal

object

Object

map

Map

hashmap

HashMap

list

List

arraylist

ArrayList

collection

Collection

iterator

Iterator

 

P14

typeHandlers

  無論何時MyBatisPreparedStatement設(shè)置參數(shù)或從ResultSet檢索一個值,TypeHandler總是以一種適合于這種Java類型的方式來檢索到值。下面的表格描述了默認(rèn)的TypeHandler。

Type Handler

Java Types

JDBC Types

BooleanTypeHandler

Boolean, boolean

兼容BOOLEAN的類型

ByteTypeHandler

Byte, byte

兼容NUMERIC or BYTE的類型

ShortTypeHandler

Short, short

兼容NUMERIC or SHORT INTEGER的類型

IntegerTypeHandler

Integer, int

兼容NUMERIC or INTEGER的類型

LongTypeHandler

Long, long

兼容NUMERIC or LONG INTEGER的類型

FloatTypeHandler

Float, float

兼容NUMERIC or FLOAT的類型

DoubleTypeHandler

Double, double

兼容NUMERIC or DOUBLE的類型

BigDecimalTypeHandler

BigDecimal

兼容NUMERIC or DECIMAL的類型

StringTypeHandler

String

CHAR, VARCHAR

ClobTypeHandler

String

CLOB, LONGVARCHAR

NStringTypeHandler

String

NVARCHAR, NCHAR

NClobTypeHandler

String

NCLOB

ByteArrayTypeHandler

byte[]

兼容字節(jié)流(byte stream type)的類型

BlobTypeHandler

byte[]

BLOB, LONGVARBINARY

DateTypeHandler

Date (java.util)

TIMESTAMP

DateOnlyTypeHandler

Date (java.util)

DATE

TimeOnlyTypeHandler

Date (java.util)

TIME

SqlTimestampTypeHandler

Timestamp (java.sql)

TIMESTAMP

SqlDateTypeHadler

Date (java.sql)

DATE

SqlTimeTypeHandler

Time (java.sql)

TIME

ObjectTypeHandler

Any

其它或未定義的

EnumTypeHandler

Enumeration Type

VARCHAR – 任何兼容字符串的類型當(dāng)編碼被存儲時 (不是索引).

 

 

 

P15

       你可以覆蓋type handler或定制一個去處理不支持或非標(biāo)準(zhǔn)化的類型。為此,只要實現(xiàn)TypeHandler接口(org.mybatis.type)、映射TypeHandler實現(xiàn)類到一個Java類型(也可以是一個JDBC類型)就行了,例如:

  

       使用這樣一個TypeHandler會覆蓋現(xiàn)存的Java字符串屬性、varchar參數(shù)和結(jié)果的type handler。注意:MyBatis不會依據(jù)數(shù)據(jù)庫元數(shù)據(jù)自省出類型,所以必須定義參數(shù)和結(jié)果映射中的類型是一個varchar字段才能鉤住正確的type handler. 這是因為MyBatis不會感知到數(shù)據(jù)類型,除非語句被執(zhí)行。

 

objectFactory

       每當(dāng)MyBatis創(chuàng)建結(jié)果對象的新實例時,它會使用一個ObjectFactory實例來達到此目的。默認(rèn)的ObjectFactory只是用默認(rèn)構(gòu)造函數(shù)來初始化這個目標(biāo)類,如果參數(shù)映射存在,就使用一個參數(shù)化的構(gòu)造函數(shù)。如果想覆蓋ObjectFactory的默認(rèn)行為,可以自己創(chuàng)建一個。例如:

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多