91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在spring boot中映射mybatis枚舉

發布時間:2021-04-15 17:51:44 來源:億速云 閱讀:221 作者:Leah 欄目:編程語言

怎么在spring boot中映射mybatis枚舉?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

添加枚舉處理器

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;
 }

}

在實體中定義枚舉類型字段

 /**
 * 是否為國民.
 */
 private YesOrNo naturalBorn;

生成的SQL語句

 ==> 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), 段會濤(String), 130523199011111219(String), 1(Integer), 2019-09-05(Date), 130523199011111219(String), 0(Integer)

看完上述內容,你們掌握怎么在spring boot中映射mybatis枚舉的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

固阳县| 天津市| 丹巴县| 无锡市| 陆良县| 漯河市| 大冶市| 定襄县| 贵南县| 江达县| 西乡县| 虞城县| 安新县| 台前县| 英吉沙县| 云和县| 金川县| 康保县| 古田县| 瑞丽市| 曲松县| 墨竹工卡县| 来宾市| 渝北区| 旺苍县| 蕲春县| 栖霞市| 枞阳县| 衢州市| 高碑店市| 房山区| 阳城县| 改则县| 隆回县| 赣榆县| 海城市| 苗栗市| 桂阳县| 临夏市| 社旗县| 宜川县|