欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

怎么在springboot中映射mybatis枚舉

怎么在spring boot中映射mybatis枚舉?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

創(chuàng)新互聯(lián)建站長(zhǎng)期為成百上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為花山企業(yè)提供專業(yè)的網(wǎng)站制作、網(wǎng)站建設(shè),花山網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

添加枚舉處理器

MappedTypes(value = {YesOrNo.class})
public class UniversalEnumHandler<E extends Enum<E> & BaseEnum> extends BaseTypeHandler<E> {

 private final Class<E> type;

 /**
 * construct with parameter.
 */
 public UniversalEnumHandler(Class<E> type) {
 if (type == null) {
  throw new IllegalArgumentException("Type argument cannot be null");
 }
 this.type = type;
 }

 @Override
 public void setNonNullParameter(PreparedStatement ps, int i, E parameter, JdbcType jdbcType)
  throws SQLException {
 ps.setInt(i, parameter.getCode());
 }

 @Override
 public E getNullableResult(ResultSet rs, String columnName) throws SQLException {
 int code = rs.getInt(columnName);
 return rs.wasNull() ? null : EnumUtils.codeOf(this.type, code);
 }

 @Override
 public E getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
 int code = rs.getInt(columnIndex);
 return rs.wasNull() ? null : EnumUtils.codeOf(this.type, code);
 }

 @Override
 public E getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
 int code = cs.getInt(columnIndex);
 return cs.wasNull() ? null : EnumUtils.codeOf(this.type, code);
 }
}

在配置文件指定處理器

mybatis-plus:
 typeHandlersPackage: cn.pilipa.account.cerebrum.client.enums #處理器所在包,我是把枚舉處理器放在枚舉包里

定義代表枚舉鍵值的接口

public interface BaseEnum<E extends Enum<?>, T> {

 public Integer getCode();

 public String getText();
}

定義一下枚舉

public enum YesOrNo implements BaseEnum {
 Yes(1, "是"),
 No(0, "否");
 private Integer code;
 private String text;

 YesOrNo(Integer code, String text) {
 this.code = code;
 this.text = text;
 }

 @JsonCreator
 public static YesOrNo jsonCreate(Integer code) {
 return EnumUtils.codeOf(YesOrNo.class, code);
 }

 @Override
 public Integer getCode() {
 return this.code;
 }

 @Override
 public String getText() {
 return this.text;
 }

 @JsonValue
 public Integer getCodeStr() {
 return this.code;
 }

}

在實(shí)體中定義枚舉類型字段

 /**
 * 是否為國(guó)民.
 */
 private YesOrNo naturalBorn;

生成的SQL語(yǔ)句

 ==> Preparing: INSERT INTO employee_info ( id, name, credit_number, status, first_time, tax_code, natural_born ) VALUES ( ?, ?, ?, ?, ?, ?, ? ) 
2019-09-05 16:56:38.991 DEBUG [accounting-client,,,] 92833 --- [   main] c.p.a.c.c.m.EmployeeInfoMapper.insert : 
==> Parameters: 1169534796253630466(Long), 段會(huì)濤(String), 130523199011111219(String), 1(Integer), 2019-09-05(Date), 130523199011111219(String), 0(Integer)

看完上述內(nèi)容,你們掌握怎么在spring boot中映射mybatis枚舉的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

本文標(biāo)題:怎么在springboot中映射mybatis枚舉
文章出自:http://chinadenli.net/article2/ppgcic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、面包屑導(dǎo)航網(wǎng)站收錄、網(wǎng)站營(yíng)銷、網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)