浅谈MyBatis-plus入门使用

浅谈MyBatis-plus入门使用

MyBatis-plus(以下简称MP)是一个为MyBatis框架提供增强功能的第三方库,旨在简化MyBatis的开发。本文将深入浅出地探讨MP的入门使用。

安装

将以下依赖添加到Maven或Gradle项目中:

<!-- MyBatis-plus -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>{latest version}</version>
</dependency>

其中最新版本可以从官网获得。

配置

在application.properties中或application.yml中添加如下配置:

mybatis-plus:
  mapper-locations: classpath*:mapper/**/*Mapper.xml # Mapper.xml文件所在目录
  type-aliases-package: com.example.entity # 实体类所在包名

常用功能

代码生成器

MP提供了一个代码生成器,可以快速生成Mapper、Service、Controller等代码。使用方法如下:

  1. 引入依赖
<!-- MyBatis-plus代码生成器 -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>{latest version}</version>
</dependency>
  1. 配置generator.properties文件
# 数据库连接信息
data.jdbc.url=
data.jdbc.username=
data.jdbc.password=
data.jdbc.driver=
# 作者信息
author=
# 生成文件所在包名
package.name=com.example
# Mapper、Entity、Mapper.xml文件生成目录
path.mapper=M:\example\src\main\java
path.entity=M:\example\src\main\java
path.mapper.xml=M:\example\src\main\resources\mapper
  1. 运行代码
public class CodeGenerator {

    public static void main(String[] args) {
        // 数据源配置
        DataSourceConfig dataSourceConfig = new DataSourceConfig()
                .setUrl("jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai")
                .setUsername("root")
                .setPassword("root")
                .setDriverName("com.mysql.jdbc.Driver");

        // 全局配置
        GlobalConfig globalConfig = new GlobalConfig()
                .setOutputDir("M:\\example\\src\\main\\java")
                .setAuthor("作者姓名")
                .setOpen(false)
                .setFileOverride(true);

        // 策略配置
        StrategyConfig strategyConfig = new StrategyConfig()
                .setNaming(NamingStrategy.underline_to_camel) // 下划线转驼峰命名
                .setColumnNaming(NamingStrategy.underline_to_camel)
                .setEntityLombokModel(true) // 实体类自动添加Lombok注解
                .setRestControllerStyle(true); // Controller为RestController风格

        // 包名策略配置
        PackageConfig packageConfig = new PackageConfig()
                .setParent("com.example")
                .setController("controller")
                .setService("service")
                .setServiceImpl("service.impl")
                .setMapper("mapper")
                .setEntity("entity");

        // 代码生成器配置
        AutoGenerator autoGenerator = new AutoGenerator()
                .setDataSource(dataSourceConfig)
                .setGlobalConfig(globalConfig)
                .setStrategy(strategyConfig)
                .setPackageInfo(packageConfig);

        // 执行生成器
        autoGenerator.execute();
    }

}

分页查询

MP提供了一个分页查询插件,在Mapper接口中使用方法如下:

public interface UserMapper extends BaseMapper<User> {

    IPage<User> selectUserPage(Page<User> page, @Param("name") String name);

}

其中IPage表示分页查询结果,Page表示分页信息,@Param表示用于传递查询条件。

在Service中调用:

public IPage<User> getUserByPage(int pageNum, int pageSize, String name) {
    Page<User> page = new Page<>(pageNum, pageSize);
    return userMapper.selectUserPage(page, name);
}

其中pageNum表示页码,pageSize表示每页的记录数。

示例

示例1:使用MP的代码生成器生成代码

  1. 参照上文的配置,配置generator.properties文件和代码生成器运行类
  2. 运行代码生成器,查看生成的代码目录下是否生成了Mapper、Entity、Mapper.xml等文件
public class CodeGeneratorExample {

    public static void main(String[] args) {
        DataSourceConfig dataSourceConfig = new DataSourceConfig()
                .setUrl("jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai")
                .setUsername("root")
                .setPassword("root")
                .setDriverName("com.mysql.jdbc.Driver");

        GlobalConfig globalConfig = new GlobalConfig()
                .setOutputDir("M:\\example\\src\\main\\java")
                .setAuthor("Mybatis-plus")
                .setOpen(false)
                .setFileOverride(true);

        StrategyConfig strategyConfig = new StrategyConfig()
                .setNaming(NamingStrategy.underline_to_camel) // 下划线转驼峰命名
                .setColumnNaming(NamingStrategy.underline_to_camel)
                .setEntityLombokModel(true) // 实体类自动添加Lombok注解
                .setRestControllerStyle(true); // Controller为RestController风格

        PackageConfig packageConfig = new PackageConfig()
                .setParent("com.example")
                .setController("controller")
                .setService("service")
                .setServiceImpl("service.impl")
                .setMapper("mapper")
                .setEntity("entity");

        AutoGenerator autoGenerator = new AutoGenerator()
                .setDataSource(dataSourceConfig)
                .setGlobalConfig(globalConfig)
                .setStrategy(strategyConfig)
                .setPackageInfo(packageConfig);

        autoGenerator.execute();
    }

}

示例2:使用MP进行分页查询

  1. 编写Mapper接口方法:
public interface UserMapper extends BaseMapper<User> {

    IPage<User> selectUserPage(Page<User> page, @Param("name") String name);

}
  1. 编写Service方法:
public IPage<User> getUserByPage(int pageNum, int pageSize, String name) {
    Page<User> page = new Page<>(pageNum, pageSize);
    return userMapper.selectUserPage(page, name);
}

其中userMapper是自定义的Mapper接口,User是自定义的实体类,name是查询条件。

总结

本文详细介绍了MP的入门使用,包括安装、配置、常用功能和示例。希望对初学者有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈MyBatis-plus入门使用 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • java实现上传图片进行切割的方法

    下面我来详细讲解一下Java实现上传图片进行切割的方法。 1. 背景 在Web开发中,上传图片并对其进行切割是非常常见的操作。通常情况下,我们需要将大图片切割成多张小图片,以方便我们的页面显示。那么如何实现这样的功能呢? 2. 技术实现 2.1 文件上传 首先要实现的便是文件上传,可以采用常用的一些Java框架,如SpringMVC或Struts2来实现。 …

    Java 2023年5月20日
    00
  • Java使用junit框架进行代码测试过程详解

    Java使用junit框架进行代码测试过程详解 什么是junit框架 junit框架是Java语言的一种单元测试框架。它提供了一种便捷的方式来测试Java程序代码是否符合预期。使用junit框架,开发人员可以编写一些测试用例来验证程序代码的正确性和可靠性,从而提高软件的质量、可维护性和可扩展性。 如何使用junit框架进行代码测试 使用junit框架进行代码…

    Java 2023年5月23日
    00
  • jsp使用sessionScope获取session案例详解

    当我们在使用JSP进行开发时,经常需要使用到session来存储用户的信息。使用session,能够方便地在多个页面之间共享数据,因此我们需要掌握如何使用session。在本篇攻略中,我们将会使用sessionScope对象来获取session,并带您演示两个简单的使用示例。 什么是session? 在Web开发中,服务器与客户端之间通信使用的是HTTP协议…

    Java 2023年6月15日
    00
  • java中的JsonSerializer用法,前后端单位转换必备

    下面我将详细讲解 Java 中的 JsonSerializer 的用法以及前后端单位转换的必备操作,内容如下: 1. 什么是 JsonSerializer JsonSerializer 是 Jackson 库中的一个类,主要是用于将 Java 对象序列化成 JSON 格式的字符串。在前后端交互时,常用的数据格式就是 JSON,因此在开发网站时,为了在前后端间…

    Java 2023年5月26日
    00
  • Java多文件生成并压缩下载功能(思路详解)

    我们来详细的讲解一下“Java多文件生成并压缩下载功能(思路详解)”: 简介 本文讲述的是在Java Web应用中实现多文件生成并压缩下载功能的实现方法,主要的思路是将文件依次读取到内存中,然后利用Java ZipOutputStream类进行压缩,最后将生成的压缩文件发送给客户端。 步骤 第一步:获取文件列表 我们可以通过前端传递一个数组,数组中包含要下载…

    Java 2023年5月20日
    00
  • Windows 10上JDK环境安装配置图文教程

    下面是“Windows 10上JDK环境安装配置图文教程”的完整攻略: 1. 下载JDK安装包 首先,你需要下载JDK安装包。此步骤需要在Oracle官方网站上完成。 打开以下链接:https://www.oracle.com/java/technologies/javase-downloads.html 在“Java SE Downloads”页面中,找到…

    Java 2023年5月24日
    00
  • Java笔记(15) Collection集合–>List集合

    集合的理解和好处数组一旦定义,长度即固定,不能修改。要添加新元素需要新建数组,然后循环拷贝,非常麻烦 集合可以动态保存任意多个对象,使用比较方便 提供饿了一系列方便的操作对象的方法:add、remove、set、get等 使用集合添加、删除新元素的示意代码,简洁明了 集合主要是两组(单列集合,双列集合)Collection 接口有两个重要的子接口,List …

    Java 2023年4月17日
    00
  • Maven项目分析剔除无用jar引用的方法步骤

    Maven是一款非常流行的项目管理工具,它可以帮助我们自动管理项目所需的jar包依赖。但是,当项目依赖的jar包过多时,会导致打包后的文件非常大,同时也会影响项目的运行效率。因此,我们需要对项目进行分析,剔除一些无用的jar包依赖。下面是Maven项目分析剔除无用jar引用的方法步骤的详细介绍: 1. 使用Maven插件dependency:analyze …

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