springboot如何配置mybaits-plus

1 MyBatis-Plus

MyBatis-Plus (opens new window)(简称 MP)是一个MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

特性:

(1)无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。

(2)损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作。

(3)强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求。

(4)支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错。

(5)支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 – Sequence),可自由配置,完美解决主键问题。

(6)支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作。

(7)支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )。

(8)内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用。

(9)内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询。

(10)分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库。

(11)内置性能分析插件:可输出 SQL 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询。

(12)内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作。

2 Maven依赖

  1. org.mybatis.spring.boot groupId>
  2. mybatis-spring-boot-starter artifactId>
  3. 2.2.0 version>
  4. dependency>
  5. mysql groupId>
  6. mysql-connector-java artifactId>
  7. runtime scope>
  8. dependency>
  9. org.projectlombok groupId>
  10. lombok artifactId>
  11. true optional>
  12. dependency>
  13. com.baomidou groupId>
  14. mybatis-plus-boot-starter artifactId>
  15. 3.4.1 version>
  16. dependency>

3 Spring Boot配置

数据库连接池设置

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

mybatis的相关配置

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

4 UserEntity

用户信息实体类。

  1. package com.entity;
  2. import com.baomidou.mybatisplus.annotation.*;
  3. import lombok.Data;
  4. /**
    • 用户信息实体类
  5. */
  6. @Data
  7. @TableName(“users”)
  8. public class UserEntity {
  9. /**
    • 用户名
  10. */
  11. @TableField(“username”)
  12. @TableId
  13. private String username;
  14. /**
    • 昵称
  15. */
  16. @TableField(“pickname”)
  17. private String pickname;
  18. /**
    • 密码
  19. */
  20. @TableField(“password”)
  21. private String password;
  22. /**
    • 性别
  23. */
  24. @TableField(“sex”)
  25. private String sex;
  26. }

5 UserMapper

用户信息dao层。

  1. package com.mapper;
  2. import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  3. import com.entity.UserEntity;
  4. import org.apache.ibatis.annotations.Mapper;
  5. /**
    • 用户信息dao层
  6. */
  7. @Mapper
  8. public interface UserMapper extends BaseMapper
  9. }

6 Service(业务逻辑层)

6.1 UserService

  1. package com.service;
  2. import com.baomidou.mybatisplus.extension.service.IService;
  3. import com.entity.UserEntity;
  4. public interface UserService extends IService
  5. }

6.2 UserServiceImpl

  1. package com.service.impl;
  2. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  3. import com.entity.UserEntity;
  4. import com.mapper.UserMapper;
  5. import com.service.UserService;
  6. import org.springframework.stereotype.Service;
  7. @Service
  8. public class UserServiceImpl extends ServiceImpl
  9. }

7 UserController

调试代码。

  1. package com.controller;
  2. import com.entity.UserEntity;
  3. import com.service.UserService;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.web.bind.annotation.*;
  6. import java.util.List;
  7. @RestController
  8. public class UserController {
  9. @Autowired
  10. private UserService userService;
  11. /**
    • 获取所有用户数据
  12. *
    • @return
  13. */
  14. @GetMapping(“/getList”)
  15. public List
  16. return userService.list();
  17. }
  18. /**
    • 插入用户数据
  19. *
    • @return
  20. */
  21. @PostMapping(“/create”)
  22. public boolean create (@RequestBody UserEntity userEntity) {
  23. return userService.save(userEntity);
  24. }
  25. /**
    • 更新用户数据
  26. *
    • @return
  27. */
  28. @PutMapping(“/update”)
  29. public boolean update (@RequestBody UserEntity userEntity) {
  30. return userService.updateById(userEntity);
  31. }
  32. /**
    • 删除用户数据
  33. *
    • @return
  34. */
  35. @DeleteMapping(“/delete/{username}”)
  36. public boolean delete (@PathVariable(“username”) String username) {
  37. return userService.removeById(username);
  38. }
  39. }

8 调试结果

8.1 查询数据

springboot如何配置mybaits-plus

8.2 新增数据

springboot如何配置mybaits-plus

8.3 更新数据

springboot如何配置mybaits-plus

8.4 删除数据

springboot如何配置mybaits-plus

Original: https://www.cnblogs.com/qianzf/p/16282630.html
Author: 锋齐叶落
Title: springboot如何配置mybaits-plus

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/541168/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • java 查看SOAP请求报文

    1 log.info("ESB 请求URL = " + cachedEndpoint.toString());//打印SOAP请求报文 add by LinJC…

    Java 2023年5月29日
    056
  • eclipse中启动tomcat出现错误的解决方法

    前段时间跟着老师做课设,各方面调试都没有问题.近段时间想起来,看看之前写过的代码,翻着翻着就发现启动tomcat出现了错误 错误如下: 错误原因:tomcat路径配置有问题,之前可…

    Java 2023年6月13日
    092
  • Java中@Qualifier注解

    当使用@Autowired注解按照组件类型进行注入时,若存在多个相同类型的组件时,spring就不知道该注入哪个了。此时就可以在多个相同类型的组件上使用@Component(&#8…

    Java 2023年5月29日
    091
  • mybatis jdk动态代理接口时碰到的继承问题

    背景: 基类指针指向派生类对象 仍然调用了基类同名方法 基类方法没有mybatis query注解处理名叫entity对象,再一次看出调用的基类的方法 问题: 1 为什么基类的方法…

    Java 2023年5月30日
    078
  • java 静态代码块 静态方法

    (一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对…

    Java 2023年6月9日
    071
  • 2、系统的硬件组成

    1 系统的硬件组成概览 1.1 总线 1.2 I/O设备 1.3 主存 1.4 处理器 1 系统的硬件组成概览 1.1 总线 总线是负责在各个 部件之间传递信息的,信息的单位是字节…

    Java 2023年6月7日
    0106
  • 大连交通大学课程共享

    如本页面访问适配不佳,阅读体验不好可访问公众号页面(适配更好)。公众号页面:https://mp.weixin.qq.com/s/5g2-Izrygm6WhKiT3z1yow 设立…

    Java 2023年6月15日
    067
  • 多线程渲染

    首先我们得明确3D引擎使用多线程的目的所在: 1、在CPU上进行的逻辑计算(比如骨骼动画粒子发射等)不影响渲染速度 2、较差的GPU渲染速度的低下不影响逻辑速度 第一个目标已经很明…

    Java 2023年5月30日
    091
  • JAVA中计算两个日期时间的差值竟然也有这么多门道

    上半年春招的时候,作为面试官,对于面试表现的不错的同学会要求其写一小段代码看看。题目很简单: 给定一个日期,然后计算下距离今天相差的天数。 本以为这么个问题就是用来活跃面试氛围的,…

    Java 2023年6月7日
    074
  • 通过刷题HTML遇到的问题

    通过刷题HTML遇到的问题 1、有关选择器的权重问题 1.通配符选择器和继承:权重为0,2.标签选择器:权重为00013.类选择器:权重为00104.id选择器:权重为01005….

    Java 2023年6月14日
    089
  • Node.js(一)基本node.js读取删除

    npm init -y(初始化项目) npm uninstall (xxx模块名称)=>(移除模块) var text2=require(“./text2&#82…

    Java 2023年6月15日
    071
  • 10、线程强制执行jion

    10、线程强制执行jion java;gutter:true; package com.testthread1;</p> <p>public class T…

    Java 2023年6月8日
    082
  • 报错One record is expected, but the query result is multiple records

    总结:出现这种情况,显而易见,就是查询的数据在数据库中不止一条,而我调用的selectOne方法,返回值是一个User对象,导致报错 点击查看错误代码 LambdaQueryWra…

    Java 2023年6月15日
    099
  • Golang中的插件开发

    插件化开发提供了很多便利,可动态扩展程序的相关功能,如Windows中的DLL、Linux中的So文件、还有IDEA中的插件,应用范围不可谓不广;在Golang中提供了自己的插件机…

    Java 2023年6月16日
    074
  • 最简单的JVM内存结构图

    JVM内存结构图 大家好,好几天没有更新了,今天的内容有点多,我们详细介绍下JVM内部结构图,还是和之前一样, 案例先行,方便大家理解记忆。 如上代码:在主线程中for循环新建2个…

    Java 2023年6月8日
    078
  • Stream流使用(Lamdba表达式重点场景)

    类型二: 数组:Arrays.stream(数组)或者使用Stream.of来创建 类型三:双列集合:转换成单列集合后创建 2)中间操作 filter( ) // 用作过滤集合元素…

    Java 2023年6月15日
    068
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球