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;