小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

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

 CevenCheng 2012-04-28

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

   

 

  

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

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

 

 

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

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

Type Handler

Java Types

JDBC Types

BooleanTypeHandler

Boolean, boolean

兼容BOOLEAN的類(lèi)型

ByteTypeHandler

Byte, byte

兼容NUMERIC or BYTE的類(lèi)型

ShortTypeHandler

Short, short

兼容NUMERIC or SHORT INTEGER的類(lèi)型

IntegerTypeHandler

Integer, int

兼容NUMERIC or INTEGER的類(lèi)型

LongTypeHandler

Long, long

兼容NUMERIC or LONG INTEGER的類(lèi)型

FloatTypeHandler

Float, float

兼容NUMERIC or FLOAT的類(lèi)型

DoubleTypeHandler

Double, double

兼容NUMERIC or DOUBLE的類(lèi)型

BigDecimalTypeHandler

BigDecimal

兼容NUMERIC or DECIMAL的類(lèi)型

StringTypeHandler

String

CHAR, VARCHAR

ClobTypeHandler

String

CLOB, LONGVARCHAR

NStringTypeHandler

String

NVARCHAR, NCHAR

NClobTypeHandler

String

NCLOB

ByteArrayTypeHandler

byte[]

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

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 – 任何兼容字符串的類(lèi)型當(dāng)編碼被存儲(chǔ)時(shí) (不是索引).

 

 

 

P15

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

  

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

 

objectFactory

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

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多