@MappedTypes(Encrypt.class)publicclassEncryptTypeHandler extends BaseTypeHandler<Encrypt>{privatestaticfinalbyte[] KEYS ="12345678abcdefgh".getBytes(StandardCharsets.UTF_8);/** * 设置参数*/@OverridepublicvoidsetNonNullParameter(PreparedStatement ps,inti, Encrypt parameter, JdbcType jdbcType) throws SQLExcept...
TypeHandler: 需要我们在某些列上手动指定 typeHandler 来选择使用那个typeHandler或者根据@MappedJdbcTypes和@MappedTypes注解来自行推断。 <result column="phone"property="phone" typeHandler="com.huan.study.mybatis.typehandler.EncryptType...
public class EncryptTypeHandler extends BaseTypeHandler{ private static final byte[] KEYS = "12345678abcdefgh".getBytes(StandardCharsets.UTF_8); /** * 设置参数 */ @Override public void setNonNullParameter(PreparedStatement ps, int i, Encrypt parameter, JdbcType jdbcType) throws SQLException { if (...
TypeHandler : 需要我们在某些列上手动指定 typeHandler 来选择使用那个typeHandler或者根据@MappedJdbcTypes 和 @MappedTypes注解来自行推断。 复制 <resultcolumn="phone"property="phone"typeHandler="com.huan.study.mybatis.typehandler.EncryptTypeHandler"/> 1. 2. Plugin : 可以拦截系统中的 select、insert、update...
<result column="phone" property="phone" typeHandler="com.example.EncryptTypeHandler"/> 2. 使用插件机制 MyBatis提供了插件机制,允许开发者编写自定义的插件来拦截并修改SQL语句的执行过程。通过实现Interceptor接口,可以在SQL执行前后进行数据的脱敏处理。 步骤: 编写插件类:实现Interceptor接口,并重写intercept方法,...
TypeHandler: 需要我们在某些列上手动指定 typeHandler 来选择使用那个typeHandler或者根据@MappedJdbcTypes和@MappedTypes注解来自行推断。 代码语言:javascript 代码运行次数:0 运行 AI代码解释 <result column="phone"property="phone"typeHandler="com.huan.study.mybatis.typehandler.EncryptTypeHandler"/> ...
<result column="phone" property="phone" typeHandler="com.huan.study.mybatis.typehandler.EncryptTypeHandler"/> Plugin : 可以拦截系统中的 select、insert、update、delete等语句,也能获取到sql执行前的参数和执行后的数据。 经过考虑,决定使用TypeHandler来加解密数据。 三、需求 我们有一张客户表customer,里面...
你可以定义一个自定义的@Encrypt注解,并在实体类的敏感字段上使用它。 然后,通过MyBatis的拦截器机制,拦截SQL语句的执行,对带有@Encrypt注解的字段进行加密处理。 这种方式需要你自己编写注解、拦截器以及加密逻辑。 使用类型转换器(TypeHandler): MyBatis允许你通过实现TypeHandler接口来自定义类型与数据库字段之间的转换逻...
MyBatis-Plus使用注解对字段进行加密,保存加密,读取解密 MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 1 创建注解 publicclassEncryptHandlerextendsBaseTypeHandler<String> { /** * 设置参数...
第一步,先自定义一个类,继承自BaseTypeHandler: public class AESEncryptHandler extends BaseTypeHandler { @Override public void setNonNullParameter(PreparedStatement ps, int i, Object parameter, JdbcType jdbcType) throws SQLException { ps.setString(i, AES.encrypt((String)parameter)); ...