入门篇(二)- Spring Boot项目整合MySql和MyBatis-Plus (图文教程)

入门篇 - Spring Boot项目整合MySQL和MyBatis-Plus (图文教程)

上篇文章介绍了使用IDEA新建一个简单的Spring Boot项目。本篇将介绍Spring Boot项目结构以及项目如何整合MySQL和MyBatis-Plus,本文主要是介绍MyBatis-Plus的功能用法,使之能够快速开发Spring Boot项目。


一、MySql 与 MyBatis-Plus 简介

MySQL 是IT行业最流行的开放源代码的数据库管理系统之一,它同时也是一个支持多线程高并发多用户的关系型数据库管理系统。

MySql大家自行下载安装,推荐使用数据库可视化工具Navicat进行操作。

MySql官网: https://www.mysql.com/


MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。(来自官网)

简单的说就是MyBatis-Plus对于数据库的基础操作做了封装,更方便使用了。

MyBatis-Plus官网: https://baomidou.com/


二、Spring Boot 依赖配置

1、Maven项目的pom.xml配置依赖

在这里插入图片描述

Maven项目中的文件,在Spring Boot项目中主要用于项目的依赖管理。比如图中的mybatis-plus,mysql,以及lombok的库。

1、groupId 是项目的路径,一般是域 + 公司名
2、artifactId 依赖库的唯一标志,可以看作项目的名字
3、version 库的版本号

一个pom.xml必须包含modelVersion、groupId、artifactId和version这四个元素。在maven中,使用groupId、artifactId和version组成groupId:artifactId:version 来表示每个库的唯一性。

<!-- mybatis-plus 依赖 -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.1</version>
</dependency>

<!-- MySql -->
<dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <version>8.0.15</version>
</dependency>

<!--lombok-->
<dependency>
	 <groupId>org.projectlombok</groupId>
     <artifactId>lombok</artifactId>
     <optional>true</optional>
</dependency>


2、准备好MySql相关数据
a、运行MySql

在这里插入图片描述

b、使用Navicat连接MySql,新建用户表user相关字段

在这里插入图片描述

c、application.properties 或 application.yml文件配置数据库

在这里插入图片描述

连接MySql数据库需要的配置
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/test (自己的数据库名)?useUnicode=true&characterEncoding=utf-8&rewriteBatchedStatements=true
spring.datasource.username=root  //登录数据库的用户名
spring.datasource.password=HcqJ  //登录数据库的密码
spring.datasource.tomcat.max-idle=10
spring.datasource.tomcat.max-wait=10000
spring.datasource.tomcat.max-active=50
spring.datasource.tomcat.min-idle=5
spring.datasource.tomcat.initial-size=5

三、项目连接MySQL数据库

在这里插入图片描述

输入登录MySql的账号和密码,连接数据库
在这里插入图片描述


四、MyBatis操作MySql数据库

1、项目启动类新增注解MapperScan

在这里插入图片描述


2、通过数据库表字段新建对应User实体类

在这里插入图片描述
介绍下User类上以及字段上的注解

@Data(依赖库lombok) :提供类的get、set、equals、hashCode、canEqual、toString方法。大幅度提高代码的简洁。

@TableId(mp 注解):主键的注解,idType的值

在这里插入图片描述
@TableField(fill = Enum)此注解表示字段自动填充,在我们新建以及更新记录时,字段上有此注解会自动向数据库中插入值

在这里插入图片描述
除了在字段上添加TableField注解之外,MyBatis-Plus还提供了接口MetaObjectHandler,自定义类去实现这个接口,在insertFill (插入),updateFill方法中对数据库中要自动填充的字段进行注册。

/*自动填充实现类*/
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

    /*mybatis-plus实现添加操作*/
    @Override
    public void insertFill(MetaObject metaObject) {
        this.setFieldValByName("createTime", new Date(), metaObject);
        this.setFieldValByName("updateTime", new Date(), metaObject);
        this.setFieldValByName("version",1,metaObject);
    }

    /*mybatis-plus实现更新操作*/
    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("updateTime", new Date(), metaObject);
    }
}

@Version :乐观锁注解、标记 @Verison 在字段上


3、MyBatis-Plus 操作MySql
(a)、新建UserMapper 继承 BaseMapper

在这里插入图片描述
UserMapper对象操作user表,MyBatis需要自己去建xml文件自己去实现sql语句而MyBatis-Plus底层已经帮我们写好了sql语句,封装接口方便我们能够快速开发。看下MyBatis-Plus提供的CRUD接口。

Insert 插入

// 插入一条记录
int insert(T entity);

Delete 删除

// 根据 entity 条件,删除记录
int delete(@Param(Constants.WRAPPER) Wrapper<T> wrapper);
// 删除(根据ID 批量删除)
int deleteBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
// 根据 ID 删除
int deleteById(Serializable id);
// 根据 columnMap 条件,删除记录
int deleteByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);

Update 更新

// 根据 whereEntity 条件,更新记录
int update(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) Wrapper<T> updateWrapper);
// 根据 ID 修改
int updateById(@Param(Constants.ENTITY) T entity);

Select 查询

// 根据 ID 查询
T selectById(Serializable id);
// 根据 entity 条件,查询一条记录
T selectOne(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

// 查询(根据ID 批量查询)
List<T> selectBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
// 根据 entity 条件,查询全部记录
List<T> selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 查询(根据 columnMap 条件)
List<T> selectByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);
// 根据 Wrapper 条件,查询全部记录
List<Map<String, Object>> selectMaps(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询全部记录。注意: 只返回第一个字段的值
List<Object> selectObjs(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);

// 根据 entity 条件,查询全部记录(并翻页)
IPage<T> selectPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询全部记录(并翻页)
IPage<Map<String, Object>> selectMapsPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询总记录数
Integer selectCount(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
(b)、在单元测试类中进行测试

insert插入数据

在这里插入图片描述
引入UserMapper对象,新建addUser方法,向user表中插入数据。最后一条插入的数据是李彦宏。此时我们看到麻花藤爸爸的头像是为空。

在这里插入图片描述

update更新数据
在这里插入图片描述
在这里插入图片描述


delete删除数据:

在这里插入图片描述


查询数据select:
在这里插入图片描述


结尾

本篇文章记录了Spring Boot 整合MySql以及使用MyBatis-Plus操作数据库。MyBatis-Plus还有很多对外提供的接口以及插件没有介绍到,比如分页插件,乐观锁,动态表明,后期学习到了会一一记录。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
spring boot整合mybatis-plus和pagehelper分页插件是一种常见的开发方式,可以实现数据库的分页查询功能。下面是一个简单示例项目的源码,以供参考: 首先,需要在pom.xml文件中添加相关依赖: ```xml <dependencies> <!-- Spring Boot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <!-- MyBatis Plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.0</version> </dependency> <!-- PageHelper --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.3.0</version> </dependency> <!-- MySQL Connector --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.27</version> </dependency> </dependencies> ``` 在application.properties(或application.yml)文件中配置数据库连接信息: ```yaml spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver mybatis-plus.configuration.map-underscore-to-camel-case=true ``` 创建一个简单的实体类User: ```java public class User { private Long id; private String username; private String password; // 省略getter和setter方法 } ``` 创建一个Mapper接口UserMapper: ```java @Mapper public interface UserMapper extends BaseMapper<User> { // 省略其他方法 List<User> getUsersByPage(Page<User> page, @Param("username") String username); } ``` 创建一个Service接口UserService以及其实现类UserServiceImpl: ```java @Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { @Autowired private UserMapper userMapper; @Override public IPage<User> getUsersByPage(Page<User> page, String username) { return userMapper.getUsersByPage(page, username); } } ``` 在Controller中注入UserService,并进行分页查询操作: ```java @RestController public class UserController { @Autowired private UserService userService; @GetMapping("/users") public IPage<User> getUsers(@RequestParam(value = "page", defaultValue = "1") Integer pageNum, @RequestParam(value = "size", defaultValue = "10") Integer pageSize, @RequestParam(value = "username", required = false) String username) { Page<User> page = new Page<>(pageNum, pageSize); return userService.getUsersByPage(page, username); } } ``` 至此,就完成了spring boot整合mybatis-plus和pagehelper分页插件的配置和使用。 请注意,这是一个简单示例项目,实际使用中可能需要根据需求进行适当调整和修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值