SpringBoot整合mybatis-plus进阶详细教程

yizhihongxing

SpringBoot整合mybatis-plus进阶详细教程

前言

本文将详细介绍如何在SpringBoot项目中整合mybatis-plus,使用该框架进行数据库操作,提高开发效率。

环境准备

  • JDK 1.8
  • SpringBoot 2.3.0.RELEASE
  • mybatis-plus 3.3.0
  • MySQL 5.7

集成mybatis-plus

引入依赖

在pom.xml文件中,添加以下依赖:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.3.0</version>
</dependency>

配置数据源

在application.yml文件中,配置数据源信息:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mybatis_plus?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: 123456

配置mybatis-plus

在SpringBoot启动类中,添加@MapperScan注解,指定扫描mapper接口的位置:

@SpringBootApplication
@MapperScan("com.example.mapper")
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

创建实体类

创建实体类User,使用@TableId注解指定主键:

@Data
@TableName("user")
public class User {

    @TableId(type = IdType.AUTO)
    private Long id;
    private String name;
    private Integer age;
    private String email;

}

创建mapper接口

创建mapper接口UserMapper,继承BaseMapper,mybatis-plus会自动实现基本的CRUD操作:

public interface UserMapper extends BaseMapper<User> {
}

测试

在Controller中注入UserMapper,进行测试:

@RestController
public class UserController {

    @Autowired
    private UserMapper userMapper;

    @GetMapping("/user/{id}")
    public User getUserById(@PathVariable Long id) {
        return userMapper.selectById(id);
    }

}

启动应用,访问http://localhost:8080/user/1,返回数据说明配置成功。

添加自定义SQL

如果需要添加自定义SQL,可以在mapper接口中添加方法,使用@Select注解指定查询语句:

public interface UserMapper extends BaseMapper<User> {

    @Select("select * from user where age = #{age}")
    List<User> selectByAge(Integer age);

}

然后在Controller中调用该方法:

@GetMapping("/user")
public List<User> getUserByAge(@RequestParam Integer age) {
    return userMapper.selectByAge(age);
}

使用分页查询

如果需要进行分页查询,可以使用mybatis-plus提供的分页插件,需要添加依赖和配置。

引入依赖

添加以下依赖:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-extension</artifactId>
    <version>3.3.0</version>
</dependency>

配置mybatis-plus插件

在配置类中,添加PaginationInterceptor实例,并注入到SqlSessionFactoryBean中:

@Configuration
public class MybatisPlusConfig {

    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }

    @Bean
    public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource) throws Exception {
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource);
        sqlSessionFactoryBean.setPlugins(paginationInterceptor()); //添加分页插件
        return sqlSessionFactoryBean;
    }

}

使用分页查询

在Controller中调用selectPage方法,即可实现分页查询:

@GetMapping("/user/list")
public Page<User> getUserList(@RequestParam Integer pageNum, @RequestParam Integer pageSize) {
    Page<User> page = new Page<>(pageNum, pageSize);
    return userMapper.selectPage(page, null);
}

以上就是SpringBoot整合mybatis-plus的进阶详细教程,通过该教程可以快速上手mybatis-plus,提高开发效率。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合mybatis-plus进阶详细教程 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • 电脑高手常用技巧应用全接触

    电脑高手常用技巧应用全接触攻略 1. 操作系统和软件的优化 1.1 清理系统垃圾文件 在使用电脑一段时间后,会产生许多无用的垃圾文件,这不仅会占用硬盘空间,也会拖慢电脑的速度。通过一些软件如CCleaner等,可以轻松快捷地清理系统垃圾文件,提升系统运行效率。 1.2 关闭无用系统服务 对于一些高效率的电脑用户来说,一部分系统服务其实是无用的,因为它们会影响…

    other 2023年6月25日
    00
  • css中px,em,rem,rpx的区别

    在CSS中,有多种单位可以用来表示长度和距离,包括px、em、rem和rpx等。本文将详细讲解这些单位的区别和使用方法,并提供两个示例说明。 px px是CSS中最常用的单位,它表示像素。像素是屏幕上显示的最小单位,通常情况下,1px等于屏幕上的一个物理像素。在CSS中,px通常用于指定元素的精确大小。 示例代码如下: div { width: 100px;…

    other 2023年5月5日
    00
  • GO语言运行环境下载、安装、配置图文教程

    GO语言运行环境下载、安装、配置图文教程 下载GO语言安装包 首先访问官方网站https://golang.org/dl/,找到对应的GO语言安装包并下载,根据自己的操作系统选择相应的版本。 安装GO语言 Windows 下载GO语言安装包go*.msi,双击运行,然后按照指导完成GO语言的安装,最后单击“Finish”按钮。 macOS 下载GO语言安装包…

    other 2023年6月27日
    00
  • androidmotionevent事故响应机制

    Android MotionEvent 事件响应机制 Android中的MotionEvent是指用户在屏幕上的触摸事件,包括按下、移动、抬起等操作。在Android中,MotionEvent事件响应机制是指当触屏幕时,系统如何处理这些事件并响应用户的操作。本攻略将介绍Android中的MotionEvent事件响应机制,包括发、事件拦截和处理等内容。 事件…

    other 2023年5月8日
    00
  • 苹果推送watchOS3/macOS/tvOS10 beta2开发者预览版固件更新

    苹果公司在推出新版本的操作系统时,通常会先推出开发者预览版固件,供开发人员先行体验并测试自己的应用是否适配。本文将详细讲解苹果推送watchOS3/macOS/tvOS10 beta2开发者预览版固件更新的完整攻略。 步骤一:申请并下载 Developer Preview 首先,你需要申请 iOS Developer Program 的会员,如果已经是会员则…

    other 2023年6月26日
    00
  • combobox数据获取及使用总结

    combobox数据获取及使用总结 combobox 是用来展示可选项的控件,通常用在表单中,辅助用户选择。在 Web 开发中,我们经常需要通过 ajax 异步获取 combobox 所需的数据,或者前端通过静态数据生成 combobox。本文将总结 combobox 的数据获取方式,并讨论如何在不同场景下使用 combobox。 数据获取 静态数据生成 c…

    其他 2023年3月28日
    00
  • python魔法方法-自定义序列详解

    python魔法方法-自定义序列详解 Python中的“魔法方法”允许开发者在自定义类型时覆盖Python的内部方法,从而扩展自己的类型。自定义序列是Python中使用魔法方法的常见应用之一。 基本序列协议 在Python中,序列是指能够按顺序访问元素的对象。标准库中的列表(list)、元组(tuple)、字符串(str)、字节数组(bytes array)…

    other 2023年6月25日
    00
  • ssh-keygen命令

    当然,我很乐意为您提供关于“ssh-keygen命令”的完整攻略。以下是详细的步骤说明: 步骤说明 ssh-keygen命令用于生成SSH密钥对,包括公钥和私钥。以下是详细的步骤说明: 打开终端或命令行界面。 输入ssh-keygen命令,按下回车键。 系统会提示您输入密钥文件的名称和路径。如果您不需要更改默认路径和名称,可以直接按下回车键。 系统会提示您输…

    other 2023年5月9日
    00
合作推广
合作推广
分享本页
返回顶部