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;
posted @   鱼鱼寡欢  阅读(761)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示