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

通過mybatis-plus進行數(shù)據(jù)庫字段加解密方式

 更新時間:2026年01月09日 08:37:00   作者:ronshi  
文章主要介紹了在Java開發(fā)中,從編寫處理程序(handler)到實現(xiàn)加解密工具(util),再到配置實體和字段,以及自定義MyBatis的mapper語句的全過程

1、編寫handler

@MappedJdbcTypes(JdbcType.VARCHAR)
public class EncryptHandler extends BaseTypeHandler<String> {

    @Override
    public void setNonNullParameter(PreparedStatement preparedStatement, int i, String parameter, JdbcType jdbcType) throws SQLException {
        preparedStatement.setString(i, EncryptFieldUtil.encrypt(parameter));
    }

    @Override
    public String getNullableResult(ResultSet resultSet, String columnName) throws SQLException {
        return EncryptFieldUtil.decrypt(resultSet.getString(columnName));
    }

    @Override
    public String getNullableResult(ResultSet resultSet, int columnIndex) throws SQLException {
        return EncryptFieldUtil.decrypt(resultSet.getString(columnIndex));
    }

    @Override
    public String getNullableResult(CallableStatement callableStatement, int columnIndex) throws SQLException {
        return EncryptFieldUtil.decrypt(callableStatement.getString(columnIndex));
    }

}

2、編寫加解密util

public class EncryptFieldUtil {
    /**
     * 數(shù)據(jù)庫字段加密key
     */
    private static final byte[] KEY = "sdfdfsdfdfghhhss".getBytes(StandardCharsets.UTF_8);

    /**
     * 加密字段
     */
    public static String encrypt(String value) {
        if (StrUtil.isBlank(value)) {
            return value;
        }
        AES aes = SecureUtil.aes(KEY);
        return aes.encryptHex(value);
    }

    /**
     * 解密字段
     */
    public static String decrypt(String value) {
        if (null == value) {
            return null;
        }
        try {
            return SecureUtil.aes(KEY).decryptStr(value);
        } catch (CryptoException e) {
            return value;
        }
    }

}

3、實體及字段配置

@TableName(value = "表名", autoResultMap = true)

@TableField(typeHandler = EncryptHandler.class)

4、自定義mapper語句

 <resultMap id="TitlePO" type="com.techhf.tenant.infrastruture.po.TitlePO">
       <result column="title_name" property="titleName" typeHandler="com.techhf.common.mybatis.handler.EncryptHandler"/>
 </resultMap>

總結

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

相關文章

  • Springboot微服務分布式框架Rouyi Cloud權限認證(登錄流程之token解析)

    Springboot微服務分布式框架Rouyi Cloud權限認證(登錄流程之token解析)

    這篇文章主要介紹了Springboot微服務分布式框架Rouyi Cloud權限認證的相關知識,重點講解下整個框架的入口,登錄流程之token解析,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • 關于idea-web.xml版本過低怎么生成新的(web.xml報錯)問題

    關于idea-web.xml版本過低怎么生成新的(web.xml報錯)問題

    今天通過本文給大家分享idea-web.xml版本過低怎么生成新的(web.xml報錯)問題,通過更換web.xml版本解決此問題,感興趣的朋友跟隨小編一起看看吧
    2021-07-07
  • Java 十大排序算法之希爾排序刨析

    Java 十大排序算法之希爾排序刨析

    希爾排序是希爾(Donald Shell)于1959年提出的一種排序算法。希爾排序也是一種插入排序,它是簡單插入排序經(jīng)過改進之后的一個更高效的版本,也稱為縮小增量排序,同時該算法是沖破O(n2)的第一批算法之一。本文會以圖解的方式詳細介紹希爾排序的基本思想及其代碼實現(xiàn)
    2021-11-11
  • idea注入mapper報錯報紅的幾種解決方案

    idea注入mapper報錯報紅的幾種解決方案

    相信大家在使用idea的時候一定會遇到這樣的問題,就是在service里注入mapper的時候,明明代碼沒有問題,也可以運行,但是idea它就是給你報個錯,有個紅色的波浪線在下面,所以本文將給大家介紹了idea注入mapper報錯報紅的幾種解決方案,需要的朋友可以參考下
    2023-12-12
  • Java?超詳細講解Spring?MVC異常處理機制

    Java?超詳細講解Spring?MVC異常處理機制

    Spring?MVC中提供了一個通用的異常處理機制,它提供了一個成熟、簡潔并且清晰的異常處理方案。當使用Spring?MVC開發(fā)Web應用時,利用這套現(xiàn)成的機制進行異常處理也更加自然并且高效
    2022-04-04
  • Spring Security 中的 AuthenticationManager配置及使用

    Spring Security 中的 AuthenticationManager配置及使用

    本文我們將探討 AuthenticationManager 在 Spring Security 中的作用,并指導您完成其配置和實際應用,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Java中關于二叉樹層序遍歷深入了解

    Java中關于二叉樹層序遍歷深入了解

    二叉樹的層序遍歷是面試經(jīng)常會被考察的知識點,甚至要求當場寫出實現(xiàn)過程。層序遍歷所要解決的問題很好理解,就是按二叉樹從上到下,從左到右依次打印每個節(jié)點中存儲的數(shù)據(jù),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • Springcloud seata分布式事務實現(xiàn)代碼解析

    Springcloud seata分布式事務實現(xiàn)代碼解析

    這篇文章主要介紹了Springcloud seata分布式事務實現(xiàn)代碼解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-12-12
  • 使用EasyPoi輕松導入導出Excel文檔的方法示例

    使用EasyPoi輕松導入導出Excel文檔的方法示例

    這篇文章主要介紹了使用EasyPoi輕松導入導出Excel文檔的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • java Unicode和UTF-8之間轉(zhuǎn)換實例

    java Unicode和UTF-8之間轉(zhuǎn)換實例

    這篇文章主要介紹了java Unicode和UTF-8之間轉(zhuǎn)換實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09

最新評論

神池县| 鄢陵县| 盐津县| 奉贤区| 神农架林区| 建宁县| 巴林左旗| 长宁县| 禄丰县| 广水市| 大余县| 禄丰县| 芷江| 临夏市| 资源县| 右玉县| 凯里市| 额尔古纳市| 大宁县| 衡南县| 久治县| 临朐县| 文山县| 阿巴嘎旗| 五台县| 白朗县| 凤凰县| 祥云县| 镇平县| 十堰市| 贞丰县| 玉溪市| 都匀市| 石门县| 章丘市| 汉川市| 江华| 上林县| 龙陵县| 洛川县| 琼中|