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 { }