最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mybaties plus實體類設(shè)置typeHandler不生效的解決

 更新時間:2022年08月23日 14:15:28   作者:飄零未歸人  
這篇文章主要介紹了mybaties plus實體類設(shè)置typeHandler不生效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

實體類設(shè)置typeHandler不生效問題

實體類:

@Data
@TableName(value = "centre_manage_server_info")
public class ServerEntity {
 
    @TableId(value = "id")
    //@Column(name = "id", isKey = true, isNull = false, comment = "id" )
    private String id;
 
    /**
     * 服務(wù)器ip
     */
    @TableField(value = "ip", insertStrategy = FieldStrategy.NOT_EMPTY)
    //@Column(name = "ip", isNull = false, comment = "服務(wù)器ip" )
    private String ip;
    /**
     * 服務(wù)器port
     */
    @TableField(value = "port",  insertStrategy = FieldStrategy.NOT_NULL)
    //@Column(name = "port", isNull = false, comment = "服務(wù)器port" )
    private Integer port;
    /**
     * 服務(wù)器登錄用戶名
     */
    @TableField(value = "authentication_name", typeHandler = AesTypeHandler.class, insertStrategy = FieldStrategy.NOT_EMPTY)
    //@Column(name = "authentication_name", isNull = false, comment = "服務(wù)器登錄用戶名" )
    private String authenticationName;
    /**
     * 服務(wù)器登錄密碼
     */
    @TableField(value = "authentication_pwd", typeHandler = AesTypeHandler.class, insertStrategy = FieldStrategy.NOT_EMPTY)
    //@Column(name = "authentication_pwd", isNull = false, comment = "服務(wù)器登錄密碼" )
    private String authenticationPwd;
 
}

結(jié)果插入時時有效的,但是i查詢時會出現(xiàn)部分沒有解密的問題。

解決

1.實體類注解TableName  補充  autoResultMap = true

@TableName(value = "centre_manage_server_info", autoResultMap = true)

2.mapper.xml的resultMap也需要 

<resultMap id="ServerEntity" type="com.zhong.core.centremanage.dbservice.server.entity.ServerEntity">
? ? ? ? <id column="id" property="id" />
? ? ? ? <result column="ip" property="ip" />
? ? ? ? <result column="port" property="port" />
? ? ? ? <result column="authentication_name" property="authenticationName" typeHandler="xxxx.AesTypeHandler"/>
? ? ? ? <result column="authentication_pwd" property="authenticationPwd" typeHandler="xxxx.AesTypeHandler"/>
? ? </resultMap>

mybaties中TypeHandler的使用 

在實際項目中,有一個物品表,其中有一個規(guī)格的字段,存入了JSON數(shù)組的字符串,但是后續(xù)在使用實體類的過程中,發(fā)現(xiàn)些不方便,到處要轉(zhuǎn) String 和 String[]很不方便。因此希望可以直接映射。

解決

發(fā)現(xiàn)網(wǎng)上有一個TypeHandler可以做到枚舉和數(shù)據(jù)字段的相互對應(yīng),那么用來做數(shù)組和String的轉(zhuǎn)化應(yīng)該也是可以的。代碼如下:

@MappedTypes({String[].class})
@MappedJdbcTypes({JdbcType.VARCHAR})
public class StringArrayTypeHandler implements TypeHandler<String[]> {
? ? @Override
? ? public void setParameter(PreparedStatement ps, int i, String[] parameter, JdbcType jdbcType) throws SQLException {
? ? ? ? if (parameter == null)
? ? ? ? ? ? ps.setNull(i, Types.VARCHAR);
? ? ? ? else {
? ? ? ? ? ?JSONArray array = ?new JSONArray(Arrays.asList(parameter));
? ? ? ? ? ? ps.setString(i, array.toString());
? ? ? ? }
? ? }
? ? @Override
? ? public String[] getResult(ResultSet rs, String s) throws SQLException {
? ? ? ? String columnValue = rs.getString(s);
? ? ? ? return this.getStringArray(columnValue);
? ? }
? ? @Override
? ? public String[] getResult(ResultSet rs, int columnIndex) throws SQLException {
? ? ? ? String columnValue = rs.getString(columnIndex);
? ? ? ? return this.getStringArray(columnValue);
? ? }
? ? @Override
? ? public String[] getResult(CallableStatement cs, int i) throws SQLException {
? ? ? ? String columnValue = cs.getString(i);
? ? ? ? return this.getStringArray(columnValue);
? ? }
? ? private String[] getStringArray(String columnValue) {
? ? ? ? if (columnValue == null)
? ? ? ? ? ? return null;
? ? ? ? JSONArray jsonArr = JSONArray.parseArray(columnValue);
? ? ? ? return ?jsonArr.toArray(new String[jsonArr.size()]);
? ? }

由于在項目中使用了mybatisplus,所以使用如下:

?/**
? ? ?* 商品貨品的規(guī)格列表
? ? ?*/
? ? @TableField(value = "specifications",el = "specifications,typeHandler=com.seven.wechatshop.shopapi.typehandle.StringArrayTypeHandler")
? ? private String[] specifications;

但是上面的代碼,并沒有生效。后來閱讀文檔,發(fā)現(xiàn)是缺少了一個配置。如下

//注意使用了plus的是添加下面這個
mybatis-plus.type-handlers-package = com.seven.wechatshop.shopapi.typehandle

如果只是mybatis,那么添加的配置為

mybatis.type-handlers-package=com.seven.wechatshop.shopapi.typehandle

由于也是第一次使用mybatis-plus,有很多不熟悉的地方,但是漸漸熟悉以后,確實方便了很多,加快了開發(fā)的節(jié)奏和步伐。下面附上,一些條件參數(shù)說明

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring Boot 3 整合 Spring Cloud Gateway實踐過程

    Spring Boot 3 整合 Spring Cloud 

    本文介紹了如何使用SpringCloudAlibaba2023.0.0.0版本構(gòu)建一個微服務(wù)網(wǎng)關(guān),包括統(tǒng)一路由、限流防刷和登錄鑒權(quán)等功能,并通過一個項目實例進行詳細說明,感興趣的朋友一起看看吧
    2025-02-02
  • SpringCloud Ribbon負載均衡工具使用

    SpringCloud Ribbon負載均衡工具使用

    Ribbon是Netflix的組件之一,負責(zé)注冊中心的負載均衡,有助于控制HTTP和TCP客戶端行為。Spring?Cloud?Netflix?Ribbon一般配合Ribbon進行使用,利用在Eureka中讀取的服務(wù)信息,在調(diào)用服務(wù)節(jié)點時合理進行負載
    2023-02-02
  • 完美解決Spring聲明式事務(wù)不回滾的問題

    完美解決Spring聲明式事務(wù)不回滾的問題

    下面小編就為大家?guī)硪黄昝澜鉀QSpring聲明式事務(wù)不回滾的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • Springboot?上傳文件或頭像(MultipartFile、transferTo)

    Springboot?上傳文件或頭像(MultipartFile、transferTo)

    本文主要介紹了Springboot?上傳文件或頭像(MultipartFile、transferTo),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 如何解決EasyExcel導(dǎo)出文件LocalDateTime報錯問題

    如何解決EasyExcel導(dǎo)出文件LocalDateTime報錯問題

    這篇文章主要介紹了如何解決EasyExcel導(dǎo)出文件LocalDateTime報錯問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • java中Class.getMethods()和Class.getDeclaredMethods()方法的區(qū)別

    java中Class.getMethods()和Class.getDeclaredMethods()方法的區(qū)別

    這篇文章主要介紹了java中Class.getMethods()和Class.getDeclaredMethods()方法的區(qū)別 ,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-09-09
  • Java 動態(tài)加載jar和class文件實例解析

    Java 動態(tài)加載jar和class文件實例解析

    這篇文章主要介紹了Java 動態(tài)加載jar和class文件實例解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • springboot中使用groovy的示例代碼

    springboot中使用groovy的示例代碼

    Groovy就是一種繼承了動態(tài)語言的優(yōu)良特性并運行在JVM上的編程語言,Groovy支持動態(tài)輸入,閉包,元編程,運算符重載等等語法,這篇文章主要介紹了springboot中使用groovy的相關(guān)知識,需要的朋友可以參考下
    2022-09-09
  • Spring中Bean注入源碼示例解析

    Spring中Bean注入源碼示例解析

    這篇文章主要為大家介紹了Spring中Bean注入源碼示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • 淺談Spring Boot中如何干掉if else的方法

    淺談Spring Boot中如何干掉if else的方法

    這篇文章主要介紹了Spring Boot中如何干掉if else的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09

最新評論

页游| 惠水县| 秦皇岛市| 昌吉市| 彭阳县| 连州市| 黑水县| 河东区| 天门市| 肇州县| 寿宁县| 婺源县| 巴东县| 公安县| 澄城县| 东光县| 香港 | 修水县| 青海省| 黄平县| 庆阳市| 锡林郭勒盟| 佛山市| 溆浦县| 河曲县| 微博| 类乌齐县| 五指山市| 平南县| 团风县| 专栏| 汤阴县| 卓资县| 新源县| 青河县| 吉安市| 田东县| 日土县| 武威市| 高密市| 肇庆市|