Spring Boot Mybatis 使用列舉類

2021-09-12 09:35:01 字數 3334 閱讀 6422

記錄一下,在實際專案引用列舉的步驟;

可以參照以前我總結的部落格:

為什麼要使用列舉?

需要建立以下檔案:

檔案描述

<-- inte***ce -->ienum

<-- class -->enumkeytypehandler

繼承 basetypehandler的自定義列舉類

<-- class -->實體bean

資料庫對應的po,將需要用列舉表示的宣告為enum

<-- enum -->列舉類

資料庫對應的po中需要用列舉表示的字段

<-- mybatis.xml -->對應資料庫對映的xml

需要將用列舉表示的字段定義型別為自定義列舉類

public

inte***ce

ienum

public

class

enumkeytypehandler

extends

basetypehandler

this

.type = type;

this

.enums = type.

getenumconstants()

;if(this

.enums == null)

}@override

public ienum getnullableresult

(resultset rs, string columnname)

throws sqlexception

else

}else

}@override

public ienum getnullableresult

(resultset rs,

int columnindex)

throws sqlexception

else

}@override

public ienum getnullableresult

(callablestatement cs,

int columnindex)

throws sqlexception

else

}@override

public

void

setnonnullparameter

(preparedstatement ps,

int i, ienum parameter, jdbctype jdbctype)

throws sqlexception

else

if(parameter.

getkey()

instanceof

string)}

/** * 列舉型別轉換,由於建構函式獲取了列舉的子類enums,讓遍歷更加高效快捷

* @param key 資料庫中儲存的自定義code屬性

* @return code對應的列舉類

*/private ienum locateienum

(object key)

}else

if(status.

getkey()

instanceof

string)}

}throw

newillegalargumentexception

("未知的列舉型別:"

+ key +

",請核對"

+ type.

get******name()

);}/*

* 判斷是否為整數

* @param str 傳入的字串

* @return 是整數返回true,否則返回false

*/public

static

boolean

isinteger

(string str)

}

public

class

company

implements

serializable

public

enum companystatusenum implements

ienum

/** * 根據key獲取列舉

* @param key

* @return

*/public

static companystatusenum getenumbykey

(string key)

for(companystatusenum temp:companystatusenum.

values()

)}return null;

}@override

public string getkey()

@override

public

void

setkey

(int key)

@override

public string getvalue()

@override

public

void

setvalue

(string value)

}

....

...namespace

= >

"baseresultmap"

type

="com.spring.cloud.common.po.company"

>

column

="c_id"

jdbctype

="bigint"

property

="cid"

/>

......

column

="status"

jdbctype

="varchar"

typehandler

="com.spring.cloud.common.typehandler.enumkeytypehandler"

property

="status"

/>

resultmap

>

......

>

springboot mybatis 事務管理

宣告式的事務管理是基於aop的,在springboot中可以通過 transactional註解的方式獲得支援,這種方式的優點是 1 非侵入式,業務邏輯不受事務管理 的汙染。2 方法級別的事務回滾,合理劃分方法的粒度可以做到符合各種業務場景的事務管理。我們在springboot mybatis dr...

springboot mybatis 多資料來源配置

首先 配置檔案 配置資料來源local,other為連線名稱 spring.datasource.local.url jdbc postgresql spring.datasource.local.username admin spring.datasource.local.password 666...

spring boot mybatis配置檔案開發

之前寫了乙個註解版開發的,現在在乙個配置檔案開發。我直接把 貼下面 根據id查詢單個資訊 public orders getorders integer id 新增單個資訊 mybatis config.xml的配置 insert into orders user id,number,oreatet...