SpringBoot整合MyBatisPlus详解

下面是关于“SpringBoot整合MyBatisPlus详解”的完整攻略:

1. 环境准备

  • JDK 1.8及以上
  • Maven 3.0或更高版本
  • SpringBoot 2.x
  • MyBatisPlus 3.x

2. 依赖导入

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

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>最新版本</version>
</dependency>

3. 数据库配置

在application.yml文件中配置数据源及MyBatisPlus相关配置。以下是一个示例:

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mytest?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: root

mybatis-plus:
  mapper-locations: classpath:mapper/*.xml
  configuration:
    map-underscore-to-camel-case: true

4. 代码编写

4.1 创建实体类

在dao的包下创建一个实体类(如User.java),使用@TableName注解指定对应的表名,使用@TableId注解指定主键字段。

@Data
@TableName("t_user")
public class User {
    @TableId(type = IdType.AUTO)
    private Long id;
    private String username;
    private String password;
    private String nickname;
}

4.2 创建Mapper接口

在dao的包下创建一个接口(如UserMapper.java),并继承BaseMapper接口。

public interface UserMapper extends BaseMapper<User> {
}

4.3 创建Service类

在service的包下创建一个Service类(如UserService.java),并使用@Service注解标注。

@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

    public List<User> list(){
        return userMapper.selectList(null);
    }

    public User getById(Long id){
        return userMapper.selectById(id);
    }

    public int save(User user){
        return userMapper.insert(user);
    }

    public int update(User user){
        return userMapper.updateById(user);
    }

    public int remove(Long id){
        return userMapper.deleteById(id);
    }

}

4.4 创建Controller类

在controller的包下创建一个Controller类(如UserController.java),并使用@RestController注解标注。

@RestController
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/user/list")
    public List<User> list(){
        return userService.list();
    }

    @GetMapping("/user/{id}")
    public User getById(@PathVariable Long id){
        return userService.getById(id);
    }

    @PostMapping("/user")
    public int save(User user){
        return userService.save(user);
    }

    @PutMapping("/user")
    public int update(User user){
        return userService.update(user);
    }

    @DeleteMapping("/user/{id}")
    public int remove(@PathVariable Long id){
        return userService.remove(id);
    }

}

5. 运行测试

使用IDE或命令行启动应用,访问http://localhost:8080/user/list,可以看到返回的数据。

6. 示例

以下是两个示例:

6.1 插入数据

向数据库插入一条数据,示例代码如下:

User user = new User();
user.setUsername("username");
user.setPassword("password");
user.setNickname("nickname");
userService.save(user);

6.2 分页查询

使用MyBatisPlus提供的类Page进行分页查询,示例代码如下:

Page<User> page = new Page<>(currentPage, pageSize);
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("username", "username");
IPage<User> userIPage = userMapper.selectPage(page, wrapper);
List<User> userList = userIPage.getRecords();

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合MyBatisPlus详解 - Python技术站

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

相关文章

  • 什么是Java Security Manager?

    Java SecurityManager是Java安全管理器,它是Java安全体系结构中的一部分,依靠安全策略来保护Java应用程序中的代码和资源。SecurityManager为你的代码提供了非常细粒度的安全控制,可以保证应用程序中的代码和资源的安全性,以防止恶意攻击、非法访问和其它的安全威胁。 使用Java SecurityManager的步骤如下: 启…

    Java 2023年5月11日
    00
  • 详解Java如何优雅的使用装饰器模式

    下面来详细讲解“详解Java如何优雅的使用装饰器模式”的完整攻略。 装饰器模式简介 装饰器模式(Decorator Pattern)是一种常用的设计模式,它允许将对象的行为在运行时更改,而无需修改其结构。这种模式是在不必改变原有对象的基础上,动态地给一个对象增加一些额外的职责。 如何使用装饰器模式 使用装饰器模式一般是通过创建一个抽象装饰者,然后通过继承该装…

    Java 2023年5月26日
    00
  • SpringBoot2 整合 ClickHouse数据库案例解析

    下面我将为你详细讲解如何实现SpringBoot2整合ClickHouse数据库的步骤。 准备工作 安装ClickHouse数据库 创建一个SpringBoot2项目 添加依赖 在SpringBoot2项目的pom.xml文件中添加ClickHouse驱动依赖: <dependency> <groupId>cc.blynk</g…

    Java 2023年5月20日
    00
  • C# 语言入门基础介绍

    C# 语言入门基础介绍 C# 是一种通用、面向对象的编程语言,由微软公司开发,广泛应用于业界。在学习 C# 之前,需要了解一些基本的编程概念。 1. C# 语言的特点 C# 语言具有以下特点: 易于学习:语法简单,与其他语言相比较易于理解。 安全性高:内置类型检查和内存管理机制确保程序的稳定和安全。 面向对象:支持面向对象编程,便于开发大型应用程序。 多平台…

    Java 2023年5月19日
    00
  • Java Calendar类的使用总结实例

    下面是详细讲解Java Calendar类的使用总结实例的攻略。 1. Calendar类概述 Java中的Calendar类是一个抽象类,用来代表系统的日历信息,提供了比Date类更为广泛和详细的日历操作。 通过Calendar类,可以操作和获取年、月、日、时、分、秒、毫秒等时间信息,还可以进行日期的加、减、比较等操作。具体有以下几个常用属性: YEAR:…

    Java 2023年5月20日
    00
  • Android实现文字翻转动画的效果

    下面我来详细讲解“Android实现文字翻转动画的效果”的完整攻略。 一、思路分析 实现文字翻转动画,本质上是将文字从正面翻转到背面,再从背面翻转回正面,因此涉及到以下几个步骤: 创建两个TextView,一个作为正面文字,一个作为背面文字。 将正面文字和背面文字重合在同一个位置,重合时背面文字需要做一个180度的翻转。 当需要翻转时,将正面文字(即背面文字…

    Java 2023年5月23日
    00
  • 常见的Java Agent有哪些?

    常见的Java Agent有如下几种: ByteBuddy:基于Java字节码增强库,可以实现类加载的字节码增强。 ASM:一个轻量级Java字节码操作库,ASM可以动态生成类、方法或 Field,或者对现有类进行操作。 Javassist:Java字节码操作库,它可以在字节码层面上修改Java程序。 Instrument:Java的一个API,可以在运行时…

    Java 2023年5月11日
    00
  • Java中自己如何实现log2(N)

    在Java中,使用Math库中的log10方法可以计算任何数的对数。但是,如果要计算一个数的以2为底的对数(即log2(N)),则需要进行一些额外的计算。下面是Java中实现log2(N)的完整攻略: 方法一:利用Math库中的log10方法和换底公式将log2(N)转换为log10(N) / log10(2) public static double lo…

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