Spring Boot MyBatis对敏感信息进行加密保存教程

一、整体流程

为了实现对敏感信息的加密保存,我们可以按照以下步骤进行操作:

步骤 动作 代码
1 创建Spring Boot项目
2 引入相关依赖 xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
3 配置数据库连接 yaml spring: datasource: url: jdbc:mysql://localhost:3306/demo?useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai username: root password: 123456 driver-class-name: com.mysql.jdbc.Driver mybatis: mapper-locations: classpath:mapper/*.xml
4 创建数据库表 创建表的SQL语句
5 创建实体类 java @Data public class User { private Long id; private String username; private String password; }
6 创建Mapper接口 java public interface UserMapper { @Insert("INSERT INTO user(username, password) VALUES(#{username}, #{password})") int insert(User user); }
7 创建Mapper XML文件 xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" " <mapper namespace="com.example.mapper.UserMapper"> <insert id="insert" parameterType="com.example.entity.User"> INSERT INTO user (username, password) VALUES (#{username}, #{password}) </insert> </mapper>
8 创建Service层 java public interface UserService { int insert(User user); }
9 创建Service实现类 java @Service public class UserServiceImpl implements UserService { private final UserMapper userMapper; @Autowired public UserServiceImpl(UserMapper userMapper) { this.userMapper = userMapper; } @Override public int insert(User user) { return userMapper.insert(user); } }
10 创建Controller java @RestController public class UserController { private final UserService userService; @Autowired public UserController(UserService userService) { this.userService = userService; } @PostMapping("/user") public String addUser(@RequestBody User user) { if (userService.insert(user) > 0) { return "添加用户成功"; } return "添加用户失败"; } }
11 加密敏感信息 java @Configuration public class EncryptConfig { @Bean public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } }

二、代码实现步骤

1. 创建Spring Boot项目

使用IDE工具创建一个Spring Boot项目。

2. 引入相关依赖

在项目的pom.xml文件中引入以下依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-test</artifactId>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

3. 配置数据库连接

在项目的application.yml文件中配置数据库连接信息:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/demo?useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: root
    password: 123456