下面是整合SpringBoot和Mybatis Plus实现基本CRUD的详细攻略。
环境准备
在开始之前,请确保你已经安装了以下环境:
- JDK 1.8 或以上版本
- Maven
- IDE(如IntelliJ IDEA、Eclipse等)
创建SpringBoot项目
首先,我们需要创建一个SpringBoot项目。可以使用IDE自带的Spring Initializr插件进行创建,也可以访问 Spring Initializr 网站进行创建。
创建完成后,我们需要在 pom.xml
文件中添加对 Mybatis Plus 的依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
同时,还需要添加数据库依赖,这里以 MySQL 为例:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
其中 ${mysql.version}
需要根据你自己的项目配置进行修改。
配置数据源
添加以上依赖后,我们需要在 application.yml
文件中进行数据源的配置。示例配置如下:
spring:
datasource:
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
username: root
password: root
mybatis-plus:
configuration:
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
其中,spring.datasource
是 SpringBoot 里用于配置数据源的属性,mybatis-plus.configuration
是 Mybatis Plus 里用于配置的属性。
编写实体类
首先,我们需要在项目中创建一个实体类,表示对应数据库表的一条记录。示例代码如下:
@Data
@TableName("user")
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@TableField("username")
private String username;
@TableField("password")
private String password;
}
在这个实体类中,使用了 Lombok 插件来自动生成 getter 和 setter 方法。同时,使用了 @TableName
注解来指定该实体类对应的数据库表名,使用 @TableId
和 @TableField
注解来指定数据库表中的主键和字段名。
编写Mapper接口
在创建完实体类之后,我们需要创建一个 Mapper 接口来实现基本的 CRUD 操作。示例代码如下:
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
在这个接口中,使用了 @Mapper
注解来标识这个接口是一个 Mybatis Mapper 接口。同时,继承了 Mybatis Plus 提供的 BaseMapper
接口,该接口包含了基本的增删改查方法。
编写Service
创建完 Mapper 接口之后,我们需要创建一个 Service 来实现业务逻辑。示例代码如下:
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}
在这个 Service 实现类中,使用了 @Service
注解来标识这是一个 Spring Service 类,继承了 Mybatis Plus 提供的 ServiceImpl
类,该类包含了基本的 Service 方法实现。
注意,我们还需要定义一个 UserService 接口,其中包含了一些自定义的业务方法:
public interface UserService extends IService<User> {
boolean saveUser(User user);
}
编写Controller
最后,我们需要创建一个 Controller 来处理 HTTP 请求,将请求转发给对应的 Service 方法进行业务处理。示例代码如下:
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/save")
public boolean saveUser(User user) {
return userService.saveUser(user);
}
@GetMapping("/list")
public List<User> list() {
return userService.list();
}
}
在这个 Controller 中,使用了 @RestController
注解来标识这是一个 Spring MVC 的 Controller,使用了 @PostMapping
和 @GetMapping
注解来标识对应的 HTTP 请求,其中 @Autowired
注解用于自动注入 UserService 实例。
示例说明
以上是整合 SpringBoot 和 Mybatis Plus 实现基本 CRUD 的示例代码。在这个示例中,我们创建了一个 User 实体类,对应了数据库中的一张表。通过创建 UserMapper 接口和 UserService 接口,我们定义了一些基本的 CRUD 操作和自定义的业务方法。最后,通过创建 UserController 来处理 HTTP 请求,将请求转发给对应的 Service 方法进行业务处理。
下面再举两个示例说明:
示例1:新增用户
@PostMapping("/save")
public boolean saveUser(User user) {
return userService.saveUser(user);
}
在这个方法中,我们使用了 @PostMapping("/save")
注解来标识该方法处理 POST 请求,使用了 @RequestBody
注解来将 HTTP 请求的请求体转化为一个 User 对象。然后,调用 UserService 中的 saveUser
方法将该 User 对象保存到数据库,并返回保存的结果。
示例2:查询所有用户
@GetMapping("/list")
public List<User> list() {
return userService.list();
}
在这个方法中,我们使用了 @GetMapping("/list")
注解来标识该方法处理 GET 请求,调用 UserService 中的 list
方法查询出数据库中的所有 User 记录,并返回查询结果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合Mybatis Plus实现基本CRUD的示例代码 - Python技术站