第2课_使用MyBatis-plus进行CRUD操作
热度🔥:21 免费课程
授课语音
图书网站利用 MyBatis-Plus 实现数据的增删改查操作
1. MyBatis-Plus 概述
MyBatis-Plus 是在 MyBatis 的基础上进行扩展的 ORM 框架,旨在简化 MyBatis 的配置与操作,提供了丰富的 CRUD 操作,减少了大量样板代码。它的主要特点包括:
- 自动生成 CRUD 操作的代码。
- 提供了多种查询条件的构造器。
- 提供了代码生成器,可以根据数据库表自动生成实体类、Mapper 接口和 XML 配置文件。
2. 图书网站功能需求
在图书网站中,我们需要实现基本的增删改查(CRUD)功能,这些功能能够帮助我们管理图书信息,包括图书名称、作者、价格、库存等字段。
3. MyBatis-Plus 的集成
3.1 依赖配置
首先,我们需要在 pom.xml
中添加 MyBatis-Plus 相关的依赖。
<dependencies>
<!-- MyBatis-Plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.0</version> <!-- 可根据需要调整版本 -->
</dependency>
<!-- MySQL 驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
</dependencies>
3.2 MyBatis-Plus 配置
在 application.properties
或 application.yml
文件中,进行数据库连接和 MyBatis-Plus 配置。
# 数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/bookstore?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
# MyBatis-Plus 配置
mybatis-plus.mapper-locations=classpath:/mapper/*.xml
mybatis-plus.type-aliases-package=com.example.bookstore.entity
4. 实体类和 Mapper 接口的创建
4.1 实体类
我们为图书创建一个 Book
实体类,并使用 MyBatis-Plus 提供的注解进行映射。
package com.example.bookstore.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("book") // 指定表名
public class Book {
@TableId // 主键注解
private Long id;
private String title; // 图书名称
private String author; // 作者
private Double price; // 价格
private Integer stock; // 库存
}
4.2 Mapper 接口
Mapper
接口继承 MyBatis-Plus 提供的 BaseMapper
接口,这样就可以直接使用其提供的增删改查方法。
package com.example.bookstore.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.bookstore.entity.Book;
public interface BookMapper extends BaseMapper<Book> {
// 可以在此定义自定义的查询方法
}
4.3 Service 层
在 Service 层,我们调用 BookMapper
提供的 CRUD 方法进行数据操作。
package com.example.bookstore.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.bookstore.entity.Book;
public interface BookService extends IService<Book> {
// 可以添加自定义业务逻辑
}
4.4 Service 实现类
package com.example.bookstore.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.bookstore.entity.Book;
import com.example.bookstore.mapper.BookMapper;
import com.example.bookstore.service.BookService;
import org.springframework.stereotype.Service;
@Service
public class BookServiceImpl extends ServiceImpl<BookMapper, Book> implements BookService {
// ServiceImpl 提供了常用的增删改查方法,可以直接使用
}
5. 实现增删改查功能
5.1 新增图书
在 BookService
中,我们可以使用 save()
方法新增图书。
package com.example.bookstore.controller;
import com.example.bookstore.entity.Book;
import com.example.bookstore.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class BookController {
@Autowired
private BookService bookService;
// 新增图书
@PostMapping("/book")
public String addBook(@RequestBody Book book) {
boolean success = bookService.save(book);
return success ? "新增成功" : "新增失败";
}
}
解释:
save()
方法会自动将Book
对象保存到数据库中。
5.2 查询图书
使用 MyBatis-Plus 提供的 list()
方法查询所有图书。
@GetMapping("/books")
public List<Book> getAllBooks() {
return bookService.list();
}
解释:
list()
方法返回所有图书的列表。
5.3 修改图书
使用 updateById()
方法更新图书信息。
@PutMapping("/book/{id}")
public String updateBook(@PathVariable Long id, @RequestBody Book book) {
book.setId(id); // 设置要修改的图书的 ID
boolean success = bookService.updateById(book);
return success ? "更新成功" : "更新失败";
}
解释:
updateById()
方法根据主键更新指定图书的记录。
5.4 删除图书
使用 removeById()
方法删除图书。
@DeleteMapping("/book/{id}")
public String deleteBook(@PathVariable Long id) {
boolean success = bookService.removeById(id);
return success ? "删除成功" : "删除失败";
}
解释:
removeById()
方法根据主键删除指定的图书记录。
6. 总结
通过 MyBatis-Plus,我们可以非常方便地进行数据库的增删改查操作,避免了手动编写大量的 SQL 语句。MyBatis-Plus 提供的 BaseMapper
接口和 ServiceImpl
类,简化了开发工作,极大提高了开发效率。在本课中,我们学习了如何在图书网站中利用 MyBatis-Plus 实现增删改查操作,包括如何配置 MyBatis-Plus、如何编写实体类、Mapper 接口以及如何实现常见的 CRUD 功能。
通过这些基本操作,您可以轻松构建起一个具有基本数据操作功能的图书网站。