記錄一下,在實際專案引用列舉的步驟;
可以參照以前我總結的部落格:
為什麼要使用列舉?
需要建立以下檔案:
檔案描述
<-- 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...