1.背景

  为了防止数据库的用户数据安全,所以需要对用户数据进行加密,具体为插入数据进行加密,查询数据自动解密。

2.方案

  查询相关文档后,发现mybatis有2种方案可以处理:

   a.使用typeHandler

   b.使用intercept

   经过对批量数据执行后,发现千、万、百万级别数据拦截器相对更快一些。

3.具体实现

  3.1 intercept

   a.注解

   EncryptDecryptData 该注解用于标记拦截器适用的DBEntity

@Inherited
@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
public @interface EncryptDecryptData {
}
EncryptDecryptData

相关文章: