引言: MyBatis Plus是在MyBatis基础上的增强工具,提供了更加便捷的开发方式。本文将详细介绍如何整合Spring Boot和MyBatis Plus,以及如何使用它们来开发数据库操作。让我们开始吧!
1. 引入依赖
在 Spring Boot 项目的 pom.xml 文件中添加 MyBatis Plus 的依赖:
xml
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.4.3.3</version>
</dependency>
2. 配置数据源
在 Spring Boot 项目中,我们可以使用 Spring Boot 自带的配置类。在 com.example.demo 包下创建一个 MybatisPlusConfig.java 文件,代码如下:
ini
# 使用自己的数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
spring.datasource.username=root spring.datasource.password=root
# 配置 MyBatis Plus 数据源
mybatis-plus.datasource.url=jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
mybatis-plus.datasource.username=root
mybatis-plus.datasource.password=root
mybatis-plus.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
3. 配置 MyBatis Plus
java
@Configuration
public class MybatisPlusConfig {
@Bean
public MapperScannerConfigurer mapperScannerConfigurer() {
MapperScannerConfigurer scannerConfigurer = new MapperScannerConfigurer();
scannerConfigurer.setBasePackage("com.example.demo.mapper");
return scannerConfigurer;
}
@Bean
public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource) {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
sessionFactory.setTypeAliasesPackage("com.example.demo.entity");
sessionFactory.setMapperLocations(new
PathMatchingResourcePatternResolver().getResources("classpath*:mapper/*.xml"));
return sessionFactory;
}
@Bean
public TypeReference<List<User>> userListTypeRef() {
return new TypeReference<List<User>>() {};
}
}
在 MybatisPlusConfig 类中,我们配置了 MapperScannerConfigurer 和 SqlSessionFactoryBean。MapperScannerConfigurer 用于自动扫描 Mapper 接口的包路径,SqlSessionFactoryBean 用于创建 SqlSessionFactory,它会自动加载 Mapper.xml 文件。
4. 创建实体类
在 com.example.demo 包下创建一个 User.java 文件,代码如下:
kotlin
public class User {
private Long id;
private String name;
private Integer age;
// 省略 getter 和 setter 方法
}
5. 创建 Mapper 接口
在 com.example.demo.mapper 包下创建一个 UserMapper.java 文件,代码如下:
js
@Mapper public interface UserMapper {
@Select("SELECT * FROM user WHERE name = #{name}")
User findByName(@Param("name") String name);
@Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})")
void add(User user);
@Update("UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}")
void update(User user);
@Delete("DELETE FROM user WHERE id = #{id}")
void delete(@Param("id") Long id);
}
在 UserMapper 类上添加 @Mapper 注解,表示它是一个 Mapper 接口。在接口中定义了插入、更新、删除和查询用户信息的方法。
6. 创建 Service 类
在 com.example.demo.service 包下创建一个 UserService.java 文件,代码如下:
typescript
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public List<User> list() {
return userMapper.list();
}
public User findByName(String name) {
return userMapper.findByName(name);
}
public void add(User user) {
userMapper.add(user);
}
public void update(User user) {
userMapper.update(user);
}
public void delete(Long id) {
userMapper.delete(id);
}
}
在 UserService 类上添加 @Service 注解,表示它是一个 Service 类。在类中使用 @Autowired 注解注入 UserMapper 对象,用于调用 Mapper 接口中的方法。
7. 创建 Controller 层
在 com.example.demo.controller 包下创建一个 UserController.java 文件,代码如下:
less
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("")
public List<User> list() {
return userService.list();
}
@GetMapping("/{id}")
public User findByName(@PathVariable String name) {
return userService.findByName(name);
}
@PostMapping("")
public void add(User user) {
userService.add(user);
}
@PutMapping("/{id}")
public void update(@PathVariable Long id, User user) {
user.setId(id);
userService.update(user);
}
@DeleteMapping("/{id}")
public void delete(@PathVariable Long id) {
userService.delete(id);
}
}
在 UserController 类上添加 @RestController 注解,表示它是一个 REST 风格的控制器。在类中使用 @Autowired 注解注入 UserService 对象,用于调用 Service 类中的方法。
8. 运行应用程序
启动 Spring Boot 应用程序,打开浏览器访问 [http://localhost:8080/user,可以看到以下页面:\]
css
[ { "id": 1, "name": "张三", "age": 20 }, { "id": 2, "name": "李四", "age": 22 } ]
这是 Spring Boot 整合 MyBatis Plus 的一个简单示例。在实际开发中,我们可以使用 MyBatis Plus 提供的更多功能,例如分页、排序、级联查询等。
refs
# 深入解读Docker的Union File System技术