目录
- MyBatis-Plus 学习过程记录
- 知识点介绍
- 学习过程
- 安装步骤
- 遇到的问题及解决过程
- 总结
- 上课项目练习展示
一、MyBatis-Plus 学习过程记录
(一)知识点介绍
MyBatis-Plus(简称 MP)是一个强大的 MyBatis 增强工具,它在保留 MyBatis 核心功能的基础上,进行了诸多优化和扩展,为开发者带来了极大的便利。MP 不仅仅是一个简单的工具库,更是一种高效开发的解决方案。
MyBatis-Plus 的优势众多。首先,它提供了通用的 CRUD 操作,大大减少了开发者编写重复 SQL 语句的工作量。其次,代码生成器功能可以根据数据库表结构快速生成实体类、Mapper 接口和 Service 层代码,极大地提高了开发效率。此外,MP 还具备分页插件,使得分页查询变得轻松简单。同时,它还支持多种数据库,具有良好的兼容性和可扩展性。
(二)学习过程
- 初步接触
- 教师提供的讲义犹如一把钥匙,为我开启了 MyBatis-Plus 的学习之门。通过讲义,我对 MyBatis-Plus 的基本概念、功能特点有了初步的认识。了解到它是如何在 MyBatis 的基础上进行增强,以及这些增强功能在实际开发中的应用场景。
- 深入探索
- 带着对 MyBatis-Plus 的好奇,我开始在网上查找相关的教程和案例。各种丰富的资源让我更加深入地了解了 MP 的内部机制和使用方法。我仔细研究了不同的示例代码,学习如何在实际项目中运用 MyBatis-Plus 的各种功能。
- 实践操作
- 理论知识只有通过实践才能真正掌握。我按照安装步骤,在实际项目中引入 MyBatis-Plus,亲身体验它的强大功能。在实践过程中,我不断尝试不同的功能模块,加深对 MyBatis-Plus 的理解。
(三)安装步骤
- 准备工作
- 安装 Java 开发环境(JDK)是首要任务。确保 JDK 版本符合项目要求,并正确配置环境变量。同时,Maven 构建工具也是必不可少的。检查 Maven 的安装和配置是否正确,确保能够顺利构建项目。
- 创建一个新的 Maven 项目或在现有项目中引入 MyBatis-Plus 的依赖。如果是新建项目,可以使用 Maven 的 archetype 快速创建一个基本的项目结构。对于现有项目,需要在项目的 pom.xml 文件中添加 MyBatis-Plus 的依赖。
- 添加依赖
- 在项目的 pom.xml 文件中添加以下依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.4.1</version>
</dependency>
- 这个依赖包含了 MyBatis-Plus 的核心功能以及与 Spring Boot 的集成。在添加依赖时,要注意版本的兼容性,确保与项目中其他依赖的版本相互匹配。
- 配置数据库连接
- 在 application.properties 或 application.yml 文件中配置数据库连接信息,例如:
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
- 这里需要根据实际情况修改数据库的 URL、用户名、密码和驱动类名。确保数据库服务已经启动,并且可以通过配置的连接信息进行访问。
- 创建实体类和 Mapper 接口
- 创建一个实体类,对应数据库中的表结构,并使用 MyBatis-Plus 提供的注解进行标识。例如,可以使用 @TableName 注解指定表名,使用 @Data 注解自动生成 getter 和 setter 方法等。
- 创建一个 Mapper 接口,继承 MyBatis-Plus 提供的 BaseMapper 接口,无需编写 SQL 语句即可实现基本的 CRUD 操作。BaseMapper 接口提供了丰富的方法,如 insert、update、delete 和 selectById 等,可以满足大部分的数据库操作需求。
(四)遇到的问题及解决过程
- 问题:在添加依赖时,出现依赖下载失败的情况。
- 解决过程:首先,检查网络连接是否正常。如果网络连接不稳定,可能会导致依赖下载失败。可以尝试重新连接网络或者更换网络环境。其次,确认 Maven 仓库配置是否正确。Maven 会从配置的仓库地址下载依赖,如果仓库地址配置错误或者仓库不可用,也会导致下载失败。可以检查 Maven 的 settings.xml 文件,确保仓库地址正确配置。如果还是无法下载,可以尝试更换 Maven 仓库地址,或者手动下载依赖并添加到本地仓库。
- 问题:配置数据库连接时,出现连接失败的错误。
- 解决过程:首先,检查数据库服务是否正常启动。可以通过数据库客户端工具连接数据库,确认数据库服务是否正常运行。如果数据库服务没有启动,需要启动数据库服务。其次,确认数据库连接信息是否正确。仔细检查数据库的 URL、用户名、密码和驱动类名是否正确配置。如果数据库连接信息错误,需要修改配置信息。如果数据库服务正常,但仍然无法连接,可以尝试在数据库客户端中使用相同的连接信息进行连接,以排除数据库配置问题。如果是数据库驱动问题,可以检查驱动版本是否与数据库版本兼容,并尝试更新驱动。
(五)总结
通过学习和实践 MyBatis-Plus,我深刻体会到了它的强大功能和便捷性。它不仅简化了数据库操作的代码量,提高了开发效率,还为开发者提供了更多的灵活性和可扩展性。在学习过程中,遇到问题时通过查阅资料和尝试不同的解决方法,不仅解决了问题,还加深了对 MyBatis-Plus 和数据库连接的理解。同时,我也认识到了持续学习和实践的重要性,只有不断地探索和尝试,才能更好地掌握新的技术和工具。在今后的开发中,我将继续深入学习和使用 MyBatis-Plus,充分发挥其优势,提高开发质量和效率。
二、上课项目练习展示
在上课过程中,我完成了一个基于 MyBatis-Plus 的简单图书管理系统项目练习。该项目实现了图书的增删改查功能,以及分页查询和条件查询等功能。
以下是项目的部分代码展示:
实体类(Book.java):
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("t_book")
public class Book {
private Long id;
private String title;
private String author;
private Double price;
}
这个实体类使用了 Lombok 的 @Data 注解,自动生成了 getter 和 setter 方法,以及 toString、equals 和 hashCode 方法。同时,使用 MyBatis-Plus 的 @TableName 注解指定了数据库表名。
Mapper 接口(BookMapper.java):
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
@Repository
public interface BookMapper extends BaseMapper<Book> {
}
Mapper 接口继承了 MyBatis-Plus 的 BaseMapper 接口,无需编写 SQL 语句即可实现基本的 CRUD 操作。通过这种方式,大大减少了代码量,提高了开发效率。
Service 接口(BookService.java):
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@Service
public class BookService extends ServiceImpl<BookMapper, Book> {
}
Service 层实现了业务逻辑,通过继承 MyBatis-Plus 的 ServiceImpl 类,实现了对数据库的操作。
Controller 类(BookController.java):
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/books")
public class BookController {
@Autowired
private ServiceImpl<BookMapper, Book> bookService;
// 添加图书
@PostMapping
public boolean addBook(@RequestBody Book book) {
return bookService.save(book);
}
// 删除图书
@DeleteMapping("/{id}")
public boolean deleteBook(@PathVariable Long id) {
return bookService.removeById(id);
}
// 修改图书
@PutMapping
public boolean updateBook(@RequestBody Book book) {
return bookService.updateById(book);
}
// 查询图书列表(分页)
@GetMapping
public Page<Book> getBookList(@RequestParam(defaultValue = "1") int pageNum,
@RequestParam(defaultValue = "10") int pageSize) {
Page<Book> page = new Page<>(pageNum, pageSize);
return bookService.page(page, null);
}
// 条件查询图书
@GetMapping("/query")
public List<Book> queryBooks(@RequestParam String title) {
QueryWrapper<Book> queryWrapper = new QueryWrapper<>();
queryWrapper.like("title", title);
return bookService.list(queryWrapper);
}
}
Controller 层负责处理 HTTP 请求,通过调用 Service 层的方法实现对数据库的操作。在这个控制器中,实现了添加图书、删除图书、修改图书、查询图书列表(分页)和条件查询图书等功能。
通过这个项目练习,我更加熟练地掌握了 MyBatis-Plus 的使用方法,同时也提高了自己的编程能力和问题解决能力。在项目开发过程中,我遇到了一些问题,例如如何处理分页查询的结果、如何优化条件查询的性能等。通过查阅资料和不断尝试,我最终解决了这些问题,并且对 MyBatis-Plus 的功能有了更深入的理解。


5万+

被折叠的 条评论
为什么被折叠?



