springboot快速集成mybatis-plus的详细教程

yizhihongxing

下面是“springboot快速集成mybatis-plus的详细教程”:

1. 引入依赖

首先,在pom.xml文件中加入以下依赖:

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

这里使用的是mybatis-plus的mybatis-plus-boot-starter依赖。如果你需要使用其他数据库,再添加对应的依赖,这里以MySQL为例:

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.26</version>
</dependency>

2. 配置数据源

接下来,需要在application.propertiesapplication.yaml中配置数据源:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/db_test
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver

这里使用的是MySQL数据库,所以我们需要指定driver-class-namecom.mysql.cj.jdbc.Driver

3. 创建实体类和Mapper

我们需要创建实体类和Mapper接口,这里以创建用户表为例。首先是实体类:

@Data
@TableName("user") // 指定对应的数据表名
public class User {
    @TableId(type = IdType.AUTO) // 指定主键的生成策略
    private Long id;
    private String name;
    private Integer age;
    private String email;
    private Date createTime;
}

在实体类中,我们需要使用@TableName注解来指定对应的数据表名,使用@TableId注解指定主键的生成策略。

接下来是Mapper接口:

@Mapper
public interface UserMapper extends BaseMapper<User> {}

这里只需要继承mybatis-plus的BaseMapper接口即可。

4. 配置Mapper扫描路径

还需要在application中配置Mapper的扫描位置:

mybatis-plus:
  mapper-locations: classpath*:mapper/*.xml

这里指定了mapper的xml文件存放在classpath*:mapper/目录下,需要使用classpath*:前缀,这样才能够扫描到jar包中的XML文件。

5. 测试代码

最后,我们需要在测试类中编写测试代码,加入以下内容:

@SpringBootTest
class MybatisPlusApplicationTests {

    @Autowired
    private UserMapper userMapper;

    @Test
    void testInsert() {
        User user = new User();
        user.setName("Tom");
        user.setAge(20);
        user.setEmail("tom@163.com");
        user.setCreateTime(new Date());
        userMapper.insert(user);
    }

    @Test
    void testSelect() {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("name", "Tom");
        List<User> userList = userMapper.selectList(queryWrapper);
        userList.forEach(System.out::println);
    }
}

在测试方法中,我们使用@Autowired注解来注入UserMapper,并且编写插入和查询测试用例。QueryWrapper是mybatis-plus的条件构造器,可以用来构造查询条件。

示例

示例1:自定义主键生成策略

如果要自定义主键生成策略,可以使用@TableId注解的type属性指定:

@Data
@TableName("user")
public class User {
    @TableId(type = IdType.ASSIGN_UUID) // 指定主键的生成策略
    private String id;
    private String name;
    private Integer age;
    private String email;
    private Date createTime;
}

示例2:使用注解实现分页查询

可以使用@Pageable注解和Page类实现分页查询:

@Mapper
public interface UserMapper extends BaseMapper<User> {
    @Select("select * from user")
    List<User> selectPage(@Param("page") Page page);
}
@SpringBootTest
class MybatisPlusApplicationTests {

    @Autowired
    private UserMapper userMapper;

    @Test
    void testSelectPage() {
        Page<User> page = new Page<>(1, 2); // 第一页,每页两条记录
        List<User> userList = userMapper.selectPage(page);
        System.out.println("总记录数:" + page.getTotal());
        System.out.println("总页数:" + page.getPages());
        userList.forEach(System.out::println);
    }
}

以上便是使用springboot快速集成mybatis-plus的详细攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot快速集成mybatis-plus的详细教程 - Python技术站

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

相关文章

  • ES6 Array常用扩展的应用实例分析

    下面就针对题目提供一份“ES6 Array常用扩展的应用实例分析”的攻略。 ES6 Array常用扩展 1. Array.from() Array.from() 方法可以将一个类似数组或可迭代对象转换为一个真正的数组。该方法需要一个目标对象作为参数,可以指定一个函数来对原数组的每个元素进行操作,并返回一个新的数组。 let arr = "12345…

    Java 2023年5月26日
    00
  • java简单实现八叉树图像处理代码示例

    下面我将为您详细讲解“Java简单实现八叉树图像处理代码示例”的完整攻略。 什么是八叉树 八叉树是一种多叉树结构,它的每个非叶子结点都有八个孩子结点。在计算机视觉和计算机图形学中,八叉树被广泛应用于图像处理中的分割和压缩等领域。 八叉树在图像处理中的应用 将一幅图像划分为多个小块是图像处理中的一种重要方法,八叉树就是在图像划分中广泛应用的一种方法。通过将一幅…

    Java 2023年5月19日
    00
  • 浅谈SpringMVC HandlerInterceptor诡异问题排查

    下面来详细讲解如何排查 SpringMVC HandlerInterceptor 的诡异问题。 1. 确定问题 当我们在 SpringMVC 中使用 HandlerInterceptor 的时候,发现执行顺序有问题,拦截器不按照我们希望的顺序执行,或者是某个拦截器失效了。这个时候,我们首先需要确定问题的根源。 1.1 确定是哪个拦截器失效 我们可以通过在每个…

    Java 2023年5月25日
    00
  • Jmeter中的timeshift()函数获取当前时间进行加减

    Jmeter是一款功能强大的压力测试工具,在实际使用中,我们通常需要对请求进行定制化操作,例如,将请求时间加减一定的时间,以观察服务器在不同时间的响应情况。这时,我们可以使用Jmeter中的timeshift()函数来进行操作。 什么是timeshift()函数 timeshift()函数是Jmeter自带的日期操作函数,用于获得和操作当前时间。该函数可以根…

    Java 2023年5月20日
    00
  • 24基于java的宠物医院管理系统

    项目背景 随着互联网的普及,已经和我们的生活不可分割;宠物渐渐的已经成为了我们的好朋友,宠物医院管理系统可以帮助用户合理的管理宠物,呵护宠物的健康,对宠物起到了一个健康监控的作用; 项目介绍 系统总体分为3个角色:分别是系统管理员;医生和用户;不能的角色拥有不同的功能权限,下面详细介绍:系统管理员: 系统设置 宠物管理 预约管理 日常健康 宠物档案管理 医院…

    Java 2023年5月6日
    00
  • Linux折腾记(十):Bash脚本编程语言中的美学与哲学

    让我来详细讲解一下“Linux折腾记(十):Bash脚本编程语言中的美学与哲学”的完整攻略。 Bash脚本编程语言中的美学与哲学 Bash是Linux和Unix操作系统上使用最为广泛的一种脚本编程语言,支持许多快速编写脚本的便捷特性和基本编程思想,但同时也继承了Unix哲学的精湛技艺。Bash脚本编程语言的美学和哲学对于每位工程师来说都至关重要,掌握这些美学…

    Java 2023年5月26日
    00
  • 教你用Java验证服务器登录系统

    下面是教你用 Java 验证服务器登录系统的完整攻略。 1. 了解登录系统的流程 在开始编写验证服务器登录系统的程序之前,我们需要了解登录系统的流程。一般来说,登录系统的流程包含以下几个步骤: 用户在客户端界面输入用户名和密码。 客户端将用户输入的用户名和密码打包成请求发给服务器。 服务器验证用户名和密码是否正确。 如果用户名和密码正确,服务器就会在数据库中…

    Java 2023年5月24日
    00
  • 详解SpringMVC重定向传参数的实现

    接下来我将为你讲解“详解SpringMVC重定向传参数的实现”的完整攻略。 标题 介绍 在SpringMVC中,有时候需要在重定向跳转的时候把一些参数传递过去,以便在下一个请求中使用。本文将详细讲解如何在SpringMVC中实现重定向传参数。 实现步骤 第一步:使用RedirectAttributes添加Flash属性 SpringMVC提供了Redirec…

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