MyBatis-Plus使用注解对字段进行加密,保存加密,读取解密
MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
1 创建注解
public class EncryptHandler extends BaseTypeHandler<String> {
    /**
     * 设置参数
     */
    @Override
    public void setNonNullParameter(PreparedStatement ps, int i, String parameter, JdbcType jdbcType) throws SQLException {
        if (StrUtil.isEmpty(parameter)) {
            ps.setString(i, null);
            return;
        }
        ps.setString(i, encrypt(parameter));
    }
    /**
     * 获取值
     */
    @Override
    public String getNullableResult(ResultSet rs, String columnName) throws SQLException {
        return decrypt(rs.getString(columnName));
    }
    /**
     * 获取值
     */
    @Override
    public String getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
        return decrypt(rs.getString(columnIndex));
    }
    /**
     * 获取值
     */
    @Override
    public String getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
        return decrypt(cs.getString(columnIndex));
    }
    public String decrypt(String value) {
        if (StrUtil.isEmpty(value)) {
            return null;
        }
        具体加密方法
        return ""
    }
    public String decrypt(String value) {
        if (StrUtil.isEmpty(value)) {
            return null;
        }
        具体解密方法
        return "";
    }
}
2 在实体类的参数上添加注解
@TableField(typeHandler = EncryptHandler.class)
private String psw;
                    
                
                
            
        
浙公网安备 33010602011771号