MyBatis-Plus 学习心得

目录

  1. MyBatis-Plus 学习过程记录
    • 知识点介绍
    • 学习过程
    • 安装步骤
    • 遇到的问题及解决过程
    • 总结
  2. 上课项目练习展示

一、MyBatis-Plus 学习过程记录

(一)知识点介绍

MyBatis-Plus(简称 MP)是一个强大的 MyBatis 增强工具,它在保留 MyBatis 核心功能的基础上,进行了诸多优化和扩展,为开发者带来了极大的便利。MP 不仅仅是一个简单的工具库,更是一种高效开发的解决方案。

MyBatis-Plus 的优势众多。首先,它提供了通用的 CRUD 操作,大大减少了开发者编写重复 SQL 语句的工作量。其次,代码生成器功能可以根据数据库表结构快速生成实体类、Mapper 接口和 Service 层代码,极大地提高了开发效率。此外,MP 还具备分页插件,使得分页查询变得轻松简单。同时,它还支持多种数据库,具有良好的兼容性和可扩展性。

(二)学习过程

  1. 初步接触
    • 教师提供的讲义犹如一把钥匙,为我开启了 MyBatis-Plus 的学习之门。通过讲义,我对 MyBatis-Plus 的基本概念、功能特点有了初步的认识。了解到它是如何在 MyBatis 的基础上进行增强,以及这些增强功能在实际开发中的应用场景。
  2. 深入探索
    • 带着对 MyBatis-Plus 的好奇,我开始在网上查找相关的教程和案例。各种丰富的资源让我更加深入地了解了 MP 的内部机制和使用方法。我仔细研究了不同的示例代码,学习如何在实际项目中运用 MyBatis-Plus 的各种功能。
  3. 实践操作
    • 理论知识只有通过实践才能真正掌握。我按照安装步骤,在实际项目中引入 MyBatis-Plus,亲身体验它的强大功能。在实践过程中,我不断尝试不同的功能模块,加深对 MyBatis-Plus 的理解。

(三)安装步骤

  1. 准备工作
    • 安装 Java 开发环境(JDK)是首要任务。确保 JDK 版本符合项目要求,并正确配置环境变量。同时,Maven 构建工具也是必不可少的。检查 Maven 的安装和配置是否正确,确保能够顺利构建项目。
    • 创建一个新的 Maven 项目或在现有项目中引入 MyBatis-Plus 的依赖。如果是新建项目,可以使用 Maven 的 archetype 快速创建一个基本的项目结构。对于现有项目,需要在项目的 pom.xml 文件中添加 MyBatis-Plus 的依赖。
  2. 添加依赖
    • 在项目的 pom.xml 文件中添加以下依赖:
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.4.1</version>
</dependency>

  • 这个依赖包含了 MyBatis-Plus 的核心功能以及与 Spring Boot 的集成。在添加依赖时,要注意版本的兼容性,确保与项目中其他依赖的版本相互匹配。

  1. 配置数据库连接
    • 在 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、用户名、密码和驱动类名。确保数据库服务已经启动,并且可以通过配置的连接信息进行访问。

  1. 创建实体类和 Mapper 接口
    • 创建一个实体类,对应数据库中的表结构,并使用 MyBatis-Plus 提供的注解进行标识。例如,可以使用 @TableName 注解指定表名,使用 @Data 注解自动生成 getter 和 setter 方法等。
    • 创建一个 Mapper 接口,继承 MyBatis-Plus 提供的 BaseMapper 接口,无需编写 SQL 语句即可实现基本的 CRUD 操作。BaseMapper 接口提供了丰富的方法,如 insert、update、delete 和 selectById 等,可以满足大部分的数据库操作需求。

(四)遇到的问题及解决过程

  1. 问题:在添加依赖时,出现依赖下载失败的情况。
    • 解决过程:首先,检查网络连接是否正常。如果网络连接不稳定,可能会导致依赖下载失败。可以尝试重新连接网络或者更换网络环境。其次,确认 Maven 仓库配置是否正确。Maven 会从配置的仓库地址下载依赖,如果仓库地址配置错误或者仓库不可用,也会导致下载失败。可以检查 Maven 的 settings.xml 文件,确保仓库地址正确配置。如果还是无法下载,可以尝试更换 Maven 仓库地址,或者手动下载依赖并添加到本地仓库。
  2. 问题:配置数据库连接时,出现连接失败的错误。
    • 解决过程:首先,检查数据库服务是否正常启动。可以通过数据库客户端工具连接数据库,确认数据库服务是否正常运行。如果数据库服务没有启动,需要启动数据库服务。其次,确认数据库连接信息是否正确。仔细检查数据库的 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 的功能有了更深入的理解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值