不不不不.... 2022-03-29 17:27 采纳率: 0%
浏览 241

手动写sql时,typeHandler解密操作失效

问各位大🐂一个问题,对数据进行加解密为啥手写sql,不进行解密,是因为手写sql没走框架吗?
实体类

@ApiModel(value = "基础用户表")
@Data
@TableName(autoResultMap = true)
public class SysUser extends CheckData implements Serializable {
    /**
     * 自增主键
     */
    @ApiModelProperty(value = "自增主键")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * uuid,关联使用
     */
    @ApiModelProperty(value = "uuid,关联使用")
    private String uuid;

    /**
     * 用户名
     */
    @ApiModelProperty(value = "用户名")
    private String username;

    /**
     * 密码(加密)
     */
    @ApiModelProperty(value = "密码(加密)")
    @TableField(typeHandler = Sm4EncryptHandler.class)
    private String password;

    /**
     * 别名
     */
    @ApiModelProperty(value = "别名")
    private String alias;

    /**
     * 是否生效1生效|0
     */
    @ApiModelProperty(value = "是否生效1生效|0")
    private String active;

    /**
     * 真实姓名
     */
    @ApiModelProperty(value = "真实姓名")
    @TableField(typeHandler = Sm4EncryptHandler.class)
    private String name;

    /**
     * 移动电话
     */
    @ApiModelProperty(value = "移动电话")
    @TableField(typeHandler = Sm4EncryptHandler.class)
    private String mobilePhone;
}

主要代码
使用原生查询方法可以进行解密
自己定义手写sql无法进行解密

        SysUser sysUser = sysUserMapper.selectById(96);

        String phone = sysUserMapper.selectPhone(413L);

        SysUser s = sysUserMapper.selectPhone2(413L);

mapper

@Select("select id,mobile_phone,name from sys_user where id=#{id}")
    SysUser selectPhone2(Long id);

    @Select("select mobile_phone from sys_user where id=#{id}")
    String selectPhone(Long id);

运行结果及报错内容

只有mybatisplus原生的查询能正常解密
另外两种都没有进行解密,有大🐂能解释一下吗?

  • 写回答

2条回答 默认 最新

  • 两把刷子️ 2023-03-31 16:00
    关注

    解决了么?我这有个方案

    img

    希望能够帮到你和后续有此类问题的同学

    评论

报告相同问题?

问题事件

  • 创建了问题 3月29日

悬赏问题

  • ¥300 寻抓云闪付tn组成网页付款链接
  • ¥15 请问Ubuntu要怎么安装chrome呀?
  • ¥15 视频编码 十六进制问题
  • ¥15 Xsheii7我安装这个文件的时候跳出来另一个文件已锁定文件的无一部分进程无法访问。这个该怎么解决
  • ¥15 unity terrain打包后地形错位,跟建筑不在同一个位置,怎么办
  • ¥15 FileNotFoundError 解决方案
  • ¥15 uniapp实现如下图的图表功能
  • ¥15 u-subsection如何修改相邻两个节点样式
  • ¥30 vs2010开发 WFP(windows filtering platform)
  • ¥15 服务端控制goose报文控制块的发布问题