开发环境:
SpringBoot2 + Druid + MybatisPlus + Sharding-JDBC
一、引入jar包
pom.xml文件中引入以下依赖。
<!-- Sharding-JDBC for spring boot -->
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
<version>4.0.0-RC1</version>
</dependency>
<!-- Sharding-JDBC for spring namespace -->
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-namespace</artifactId>
<version>4.0.0-RC1</version>
</dependency>
<!-- Druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.18</version>
<scope>compile</scope>
</dependency>
<!--Mybatis plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.2</version>
</dependency>
<!--mysql connector-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
二、配置文件
application.yml中添加如下数据脱敏的配置。
spring:
shardingsphere:
# 定义数据源
datasource:
names: ds
ds:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://10.150.27.40:3306/master
username: test_yinni
password: test_yinni
props:
# 用密文查询
query.with.cipher.column: true
encrypt:
encryptors:
encryptor-aes:
type: aes
props:
aes.key.value: 123456
# 密文字段
qualifiedColumns: user.pwdjm
tables:
user:
columns:
# 明文字段,用于查询的字段
pwdmw:
encryptor: encryptor-aes
三、测试结果
1、有个地方,需要让加密字段是非null的,否则加密字段是无法写进去的。如下是数据库中的效果:
2、如下是对应的映射关系,但是经过测试,以上的配置文件才可以生效。