沃梦达 / IT编程 / 数据库 / 正文

SpringBoot整合Mybatis Plus实现基本CRUD的示例代码

下面是整合SpringBoot和Mybatis Plus实现基本CRUD的详细攻略。

下面是整合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的示例代码