问各位大🐂一个问题,对数据进行加解密为啥手写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原生的查询能正常解密
另外两种都没有进行解密,有大🐂能解释一下吗?