当前位置: 首页 > news >正文

Spring Boot整合MyBatis-Plus

引言

在现代软件开发中,我们经常需要处理大量的数据。为了有效地管理这些数据,我们需要使用一些强大的框架。其中,Spring Boot和MyBatis-Plus是两个非常流行的框架。Spring Boot是一个基于Spring的开源Java框架,可以用于创建独立的、生产级别的Spring应用。MyBatis-Plus是一个MyBatis的增强工具,它在MyBatis的基础上增加了许多实用的功能,如自动分页、自动填充等。本文将详细介绍如何使用Spring Boot整合MyBatis-Plus。

Spring Boot整合MyBatis-Plus的基础配置

  • 引入依赖

pom.xml中引入MyBatis-Plus和相关数据库驱动的依赖:


        <!-- MyBatis-Plus -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.3</version>
        </dependency>

        <!-- MySQL Connector 数据库驱动  -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
  • 配置数据源

application.propertiesapplication.yml中配置数据源信息:

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatisplus
    username: root
    password: root
server:
  port: 8181
mybatis-plus:
  mapper-locations: classpath:/mapper/*.xml
  configuration:
    # 日志
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  #是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN(下划线命名)到经典 Java 属性名 aColumn(驼峰命名) 的类似映射
    map-underscore-to-camel-case: true


温馨提示

mybatis-plus:
  global-config:
    db-config:
      table-prefix: tbl_		#设置所有表的通用前缀名称为tbl_
  • 配置MyBatis-Plus

在Spring Boot的主应用类上添加@MapperScan注解,指定Mapper接口所在的包路径:

@SpringBootApplication
@MapperScan(basePackages = "com.dao")
public class MybatisPlusApplication {
    public static void main(String[] args) {
        SpringApplication.run(MybatisPlusApplication.class, args);
    }
}

使用MyBatis-Plus进行数据访问

  • 数据准备

CREATE TABLE `user` (
  `id` bigint(200) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  `age` int(3) DEFAULT NULL,
  `create_time` date DEFAULT NULL,
  `update_time` date DEFAULT NULL,
  `version` bigint(10) DEFAULT NULL,
  `status` tinyint(20) DEFAULT NULL,
  `deleted` int(11) DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8
  • 创建实体类

@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("user")
public class User {
    @TableId(type = IdType.AUTO)
    private Long id;

    private String name;

    private Integer age;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    @Version
    private Long version;

    private Integer status;

    private Integer deleted;
}
  • 创建Mapper接口

创建Mapper接口,继承BaseMapper接口,无需写具体的SQL语句。

public interface UserDao extends BaseMapper<User> {

}
  • 创建Service接口

public interface UserService extends IService<User> {

}
  • 创建Service实现类

@Service("userService")
public class UserServiceImpl extends ServiceImpl<UserDao, User> implements UserService {

}
  • 创建Controller类

@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

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

测试应用

ac109323eae04ec7b530bd7bcd4b8632.png

最后,我们可以运行我们的应用来进行测试。如果我们的应用能够正常运行,并且能够正确地从数据库中获取数据,那么我们就可以说我们已经成功地使用Spring Boot整合了MyBatis-Plus。

结语

Spring Boot整合MyBatis-Plus为开发者提供了一个强大而高效的数据访问解决方案。通过简单的配置,开发者可以使用MyBatis-Plus提供的便捷功能,减少了传统MyBatis开发中的样板代码,同时保留了MyBatis的灵活性。整合MyBatis-Plus的代码生成器更是提高了开发效率,使得开发者能够更专注于业务逻辑的实现。通过本文的介绍,希望读者能够深入理解Spring Boot整合MyBatis-Plus的配置和使用方法,从而更加高效地构建健壮的数据访问层。

 

相关文章:

  • 【BBuf的CUDA笔记】十三,OpenAI Triton 入门笔记一
  • NLP自然语言处理原理应用讲解
  • LeetCode59 螺旋矩阵 II
  • k8s---ingress对外服务(traefik)
  • C# 基础入门
  • UE4 添加按键输入事件 并在蓝图中使用按键输入节点
  • Java算法 leetcode简单刷题记录4
  • 【Linux工具篇】软件包管理器yum
  • HarmonyOS 应用开发入门
  • c语言0基础笔记
  • 【轮式平衡机器人】——软硬件配置/准备
  • FFmpeg教程:libswscale对图像进行简单处理
  • NetSuite 文心一言(Ernie)的AI应用
  • leetcode-相交链表
  • 机器学习笔记 - 基于自定义数据集 + 3D CNN进行视频分类
  • 表单的总数据为什么可以写成一个空对象,不用具体的写表单中绑定的值,vue3
  • 大模型实战营Day5笔记
  • 科技云报道:金融大模型落地,还需跨越几重山?
  • 【Docker】Dockerfile 指令详解
  • 灰度图像的自动阈值分割
  • 中保协发布《保险机构适老服务规范》,全面规范保险机构面向老年人提供服务的统一标准
  • 云南威信麟凤镇通报“有人穿‘警察’字样雨衣参与丧事”:已立案查处
  • 沙县小吃中东首店在沙特首都利雅得开业,首天营业额5万元
  • 工人日报:“鼠标手”被纳入职业病,劳动保障网越织越密
  • 男子退机票被收90%的手续费,律师:虽然合规,但显失公平
  • 《AI×SCIENCE十大前沿观察》9:合成数据和数据基础设施