Springboot接入MyBatisPlus

这篇具有很好参考价值的文章主要介绍了Springboot接入MyBatisPlus。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、什么是MyBatisPlus?

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

通过封装一些基础通用的curd方法,我们不用再在xml文件中编写sql语句,就可以直接调用api进行对数据库的操作。

2、MyBatisPlus环境准备

   2.1 创建一个springboot项目,在pom文件下添加如下依赖:
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.1</version>
</dependency>
    2.2 创建一个包用来存放 mapper 文件

    2.3 在 Spring Boot 主类上面使用 @MapperScan 注解扫描我们自定义的 mapper

    2.4 自定义自己的 mapper,该 mapper 将继承 com.baomidou.mybatisplus.core.mapper.BaseMapper

    2.5 在我们的服务中使用 @Autowired 注解自动注入自定义的 mapper

3、具体使用

    3.1 基础使用
@Mapper
public interface OnlinePriceMapper extends BaseMapper<OnlinePrice> {

}

mapper中没有定义任何方法

package com.online.analyze.service.impl;

import com.online.analyze.mapper.OnlinePriceMapper;
import com.online.analyze.model.OnlinePrice;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.Date;

/**
 * @author lijianxi
 * @date 2022年03月18日 11:13 上午
 */
@SpringBootTest
public class MapperTest {
    @Autowired
    OnlinePriceMapper onlinePriceMapper;

    @Test
    public void testMapper() {
        OnlinePrice onlinePrice = new OnlinePrice();
        onlinePrice.setId(3999222L);
        onlinePrice.setAddDate(new Date());
        onlinePrice.setDescription("test");
        onlinePrice.setSummary("test");
        onlinePrice.setProcessMethod("修改数据");
        //新增
        int result = onlinePriceMapper.insert(onlinePrice);
        if (result > 0) {
            System.out.println("插入成功");
        }
        //查询
        OnlinePrice price = onlinePriceMapper.selectById(3999222L);
        System.out.println(price.getDescription() + "查询成功");
        //更新
        onlinePrice.setDescription("修改后");
        onlinePriceMapper.updateById(onlinePrice);
        System.out.println(onlinePriceMapper.selectById(3999222L).getDescription() + "修改成功");
        //删除
        if (onlinePriceMapper.deleteById(3999222L) > 0) {
            System.out.println("删除成功");
        }


    }
}

通过注入mapper,就可以使用 mapper 的 insert(插入)、selectById(根据ID查找)、updateById(根据ID更新)和 deleteById(根据ID删除)等简单的 CRUD 操作

常用的增删改查方法可以查看BaseMapper接口

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.baomidou.mybatisplus.core.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;

public interface BaseMapper<T> extends Mapper<T> {
    int insert(T entity);

    int deleteById(Serializable id);

    int deleteByMap(@Param("cm") Map<String, Object> columnMap);

    int delete(@Param("ew") Wrapper<T> queryWrapper);

    int deleteBatchIds(@Param("coll") Collection<? extends Serializable> idList);

    int updateById(@Param("et") T entity);

    int update(@Param("et") T entity, @Param("ew") Wrapper<T> updateWrapper);

    T selectById(Serializable id);

    List<T> selectBatchIds(@Param("coll") Collection<? extends Serializable> idList);

    List<T> selectByMap(@Param("cm") Map<String, Object> columnMap);

    T selectOne(@Param("ew") Wrapper<T> queryWrapper);

    Integer selectCount(@Param("ew") Wrapper<T> queryWrapper);

    List<T> selectList(@Param("ew") Wrapper<T> queryWrapper);

    List<Map<String, Object>> selectMaps(@Param("ew") Wrapper<T> queryWrapper);

    List<Object> selectObjs(@Param("ew") Wrapper<T> queryWrapper);

    <E extends IPage<T>> E selectPage(E page, @Param("ew") Wrapper<T> queryWrapper);

    <E extends IPage<Map<String, Object>>> E selectMapsPage(E page, @Param("ew") Wrapper<T> queryWrapper);
}
3.2 wapper构建

除了通过已定义的方法来查询还可以通过 Wrapper 构建查询条件

@Test
    public void testMapper(){
        //查询id为3999222数据信息
        QueryWrapper<OnlinePrice> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("id", 3999222L);
        OnlinePrice onlinePrice = onlinePriceMapper.selectOne(queryWrapper);
        System.out.println(onlinePrice.getId());
        //查询添加日期在区间内并且user_city不为null的数据
        QueryWrapper<OnlinePrice> queryWrapper1 = new QueryWrapper<>();
        queryWrapper1.between("add_date","2022-02-02","2022-02-10");
        queryWrapper1.isNotNull("user_city");
        String summary ="test";
        // 第一个参数为是否执行条件,为true则执行该条件
        queryWrapper1.eq(StringUtils.isNotBlank(summary),"summary",summary);
        List<OnlinePrice> onlinePrices = onlinePriceMapper.selectList(queryWrapper1);
        for (OnlinePrice price : onlinePrices) {
            System.out.println(price);
        }
    }
3.3分页功能
@Test
    public void testPage() {
        QueryWrapper<OnlinePrice> queryWrapper = new QueryWrapper<>();
        queryWrapper.isNotNull("description");
        //每页四个
        Page<OnlinePrice> page = new Page<>(1, 4);
        Page<OnlinePrice> onlinePricePage = onlinePriceMapper.selectPage(page, queryWrapper);
        for (OnlinePrice record : page.getRecords()) {
            System.out.println(record);
        }
    }
3.4 service层接口

除了 BaseMapper 接口,MyBatis Plus 还提供了 IService 接口,该接口对应 Service 层。MyBatis Plus 的通用 Service CRUD 实现了 IService 接口,进一步封装 CRUD

该接口使用 get(查询单行)、remove(删除)、list(查询集合)和 page(分页)前缀命名的方式进行区别。

    @Autowired
    OnlinePriceService onlinePriceService;
    @Test
    public void testService(){
        OnlinePrice price = new OnlinePrice();
        price.setId(22222222L);
        price.setDescription("test");
        onlinePriceService.save(price);
        QueryWrapper<OnlinePrice> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("description","test");
        OnlinePrice one = onlinePriceService.getOne(queryWrapper);
        Page<OnlinePrice> page = new Page<>(1,4);
        QueryWrapper<OnlinePrice> queryWrapper1 = new QueryWrapper<>();
        queryWrapper1.between("add_date", "2022-02-02", "2022-02-10");
        onlinePriceService.page(page,queryWrapper1);
    }


以上介绍了mybatisplus的常用基础用法,mybatisplus还有自动代码生成等其他功能,可以自动生成代码,以后有空继续学习分享文章来源地址https://www.toymoban.com/news/detail-633398.html

到了这里,关于Springboot接入MyBatisPlus的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Springboot引入mybatis-plus及操作mysql的json字段

    springboot引入mybatis-plus,创建springboot项目省略 pom文件 配置文件 备注信息 springboot使用mybatis和mybatis-plus没有什么区别,需要注意的是配置文件跟配置名:mybatis-plus 使用mybatis-plus的有点在于,在mybatis的基础上记性了一系列的有效封装,节约了开发时间,有这方面兴趣额同学自行

    2024年02月06日
    浏览(53)
  • java之SpringBoot基础、前后端项目、MyBatisPlus、MySQL、vue、elementUi

    在基础篇中,我给学习者的定位是先上手,能够使用 SpringBoot 搭建基于 SpringBoot 的 web 项目开发,所以内容设置较少,主要包含如下内容: 1、 SpringBoot 快速入门 2、 SpringBoot 基础配置 3、基于 SpringBoot 整合 SSMP 学习任意一项技术,首先要知道这个技术的作用是什么,不然学完

    2024年02月10日
    浏览(44)
  • SpringBoot+MyBatisPlus+MySql+vue2+elementUi的案例、java访问数据库服务、java提供接口服务

    1、项目不使用前后端分离。 2、在创建 SpringBoot 的时候要注意各个插件间的版本问题。 3、后端技术 SpringBoot + MyBatisPlus + MySql 。 4、前端技术 vue2 + elementUi 。 简单介绍 1、数据库名称 ssm_db 2、表名称 tbl_book 数据表对象文件(Book.java) 配置文件(application.yml) 创建项目后,在 resou

    2024年02月10日
    浏览(51)
  • MyBatis与MyBatisPlus的区别

    MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具 ,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高 效率而生。 官网一共有两个:https://mybatis.plus/ 或 https://mp.baomidou.com/ 。 Mybatis-Plus是由baomidou(苞米豆)组织开发并且开源的,截止写博客时间,该组织共17人。 详细步骤

    2024年02月06日
    浏览(39)
  • 【mybatis和mybatisplus的区别】

    MyBatis 和 MyBatis Plus 都是 Java 语言的持久层框架,但它们之间有以下几个区别: MyBatis 是一个基于 XML 配置文件和 SQL 语句的 ORM 框架,提供了数据持久化的基本功能,如 SQL 映射、缓存管理等。而 MyBatis Plus 在 MyBatis 的基础上进行了扩展,提供了更加丰富的功能特性,如分页插

    2024年02月11日
    浏览(48)
  • 实战系列(三)| Mybatis和MybatisPlus区别,包含详细代码

    MyBatis 和 MyBatisPlus 都是基于 MyBatis 的扩展库,用于简化 MyBatis 的开发。MyBatisPlus 是在 MyBatis 的基础上进行封装,提供了一套通用的 CRUD 操作接口,而 MyBatis 是一个底层的持久层框架。 MyBatis 是一个持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有

    2024年02月09日
    浏览(37)
  • mybatisplus 使用mybatis中的配置、mapper配置文件

    即在和application.properties同级目录下的mybatis目录中创建mybatis的配置文件mybatis-config.xml 其内容如下 方式一的目录结构: 1、在application.properties中再添加一行mapper映射地址 修改mapper映射的配置文件路径,这次不用在和mapper接口的路径一一对应,只需要在resource/mybatis/mapper/UserMa

    2023年04月08日
    浏览(43)
  • java springboot 整合webSocket接入调用chatGPT3.5接口实现自由返回

    java springboot 中使用webSocket接入openAI接口调用chatGPT3.5接口实现自由返回 @Component @Anonymous @ServerEndpoint(“/websocket/{id}”) // 访问路径: ws://localhost:8080/websocket public class WebSocketServer { // try { // sendMessage(“WebSocket连接成功”); // } catch (Exception e) { // // } } /** * 发送消息 * @param message 要

    2024年02月14日
    浏览(59)
  • JAVA-10-[SpringBoot]整合JUnit和MyBatis

    SpringBoot测试失败并报错: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration 1.2.1 启动类MyApplication.java 1.2.2 测试类MyApplicationTests 核心配置:数据库连接相关信息(连什么?连谁?什么权限?) 映射配置:SQL映射(XML/注解) 1、导入对应starter 2、配置相关信息 2.4.1 实体类

    2023年04月08日
    浏览(38)
  • java springboot整合MyBatis演示增删查改操作

    前面我的文章 java springboot整合MyBatis做数据库查询操作讲述了整合springboot整合MyBatis 做了根据id查询的语句 那么 我们现在按它搭建的项目继续 我们在staffDao中添加一个insert函数 参考代码如下 Insert需要手动导包 import org.apache.ibatis.annotations.Insert; 这就是一个添加语句函数 返回一

    2024年02月11日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包