1、mybatis-plus需要掌握的知识

1)、mybatis-plus是什么?

  • 不写了,老衲一般都是直接进官网
  • mybatis-plus官网地址:https://baomidou.com/guide/
  • 技术也不说明了,会玩mybatis就会玩mybatis-plus

2)、mybatis-plus需要掌握的知识清单

注:知识清单中的sql性能分析插件在3.0+的版本中没有这个选项了,以前是直接放在官网的插件扩展中的,现在没有了,其他的知识点在官网都可以找到,搞懂之后直接复制粘贴即可

另:主键生成策略老衲觉得有一个人的博客写的挺不错的,链接如下:

https://www.cnblogs.com/haoxinyue/p/5208136.html

2、springboot集成mybatis-plus

2.1)、导入依赖


<!-- mybatis-plus需要的依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>

2.2)、编写yml


spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mybatis_spring?useUnicode=true&characterEncoding=utf-8
username: root
password: "072413"
type: com.alibaba.druid.pool.DruidDataSource mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # mybatis-plus配置日志
map-underscore-to-camel-case: true # 开启驼峰映射 即:实体类属性名和数据库字段采用驼峰映射
auto-mapping-behavior: full # 自动映射字段
mapper-locations: classpath:mapper/*.xml # 如果使用了mybatis和mybatis-plus 那么这里就可以把mybatis的实现类xml集成进来
# 但是:最好别这种做,用了mybatis就别用mybatis-plus,二者只能用其一

注:别把mybatis和mybatis-plus一起集成到spring中,否则:很容易出问题,虽然:mybatis-plus是mybatis的增强版,既然是增强版,那么就不会抛弃它原有的东西,只会保留原有的东西,然后新增功能,但是:mybatis和mybatis-plus集成到一起之后很容易造成版本冲突,因此:建议二者只选其一集成

2.3)、编写实体类


package cn.xiegongzi.entity; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor; import java.io.Serializable; @Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "user") // 表名注解
public class User implements Serializable { @TableId(type = IdType.AUTO) // 表示主键,这个主键是一个Long类型的值( 即:snowflake雪花算法 )
private Integer id;
@TableField("username") // 数据库字段名 就是:当实体类中的字段和数据库字段不一样时可以使用
private String name;
private String phone;
}

2.4)、编写mapper


package cn.xiegongzi.mapper; import cn.xiegongzi.entity.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper; // @Component
// @Configuration
// 注:这个对象托管,我测试过了,只有两种方法可以做到 即:上面这两个注解无法实现,测试时会报错 @Mapper // @MapperScan("cn.xiegongzi.mapper") 在启动类中加入这个注解也可以实现
public interface IUserMapper extends BaseMapper<User> {
// BaseMapper 和 JPA一样,内部有很多方法 , 即:CRUD.....,还有分页( 分页就是page()这个方法 )
// BaseMapper原来的样子是:BaseMapper<T> T表示实体类 类型 }

注意点:别用@Component@Configuration这两个注解实现对象托管,会报错:错误如下

报的错很多,总之一句话就是:导入的依赖没有导入,即:依赖我已经导入了,但是:报我没有相应的依赖,我得出的理由:mybatis / mybatis-plus相对spring来说是外部的,因此:使用spring的@Component@Configuration注解来实现对象托管,mybatis并不买账,只能用它自己的注解才可以

附:BaseMapper<T>提供的方法如下:

2.5)、测试

其他的知识,在mybatis-plus官网中都有

13 — springboot集成mybatis-plus — 更新完毕的更多相关文章

  1. SpringBoot学习笔记(三):SpringBoot集成Mybatis、SpringBoot事务管理、SpringBoot多数据源

    SpringBoot集成Mybatis 第一步我们需要在pom.xml里面引入mybatis相关的jar包 <dependency> <groupId>org.mybatis. ...

  2. 0120 springboot集成Mybatis和代码生成器

    在日常开发中,数据持久技术使用的架子使用频率最高的有3个,即spring-jdbc , spring-jpa, spring-mybatis.详情可以看我之前的一篇文章spring操作数据库的3个架子 ...

  3. springboot集成mybatis(逆向工程),热部署以及整合Swagger2

    本文是作者原创,版权归作者所有.若要转载,请注明出处. springboot集成mybatis和mybatis-generator插件 1.新建Springboot项目(略) 2.导入相关依赖 < ...

  4. springboot集成mybatis(二)

    上篇文章<springboot集成mybatis(一)>介绍了SpringBoot集成MyBatis注解版.本文还是使用上篇中的案例,咱们换个姿势来一遍^_^ 二.MyBatis配置版(X ...

  5. springboot集成mybatis(一)

    MyBatis简介 MyBatis本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation迁移到了google code,并且改名为MyB ...

  6. SpringBoot 集成Mybatis 连接Mysql数据库

    记录SpringBoot 集成Mybatis 连接数据库 防止后面忘记 1.添加Mybatis和Mysql依赖 <dependency> <groupId>org.mybati ...

  7. SpringBoot Mybatis整合(注解版),SpringBoot集成Mybatis(注解版)

    SpringBoot Mybatis整合(注解版),SpringBoot集成Mybatis(注解版) ================================ ©Copyright 蕃薯耀 2 ...

  8. SpringBoot集成Mybatis并具有分页功能PageHelper

    SpringBoot集成Mybatis并具有分页功能PageHelper   环境:IDEA编译工具   第一步:生成测试的数据库表和数据   SET FOREIGN_KEY_CHECKS=0;   ...

  9. Springboot集成mybatis(mysql),mail,mongodb,cassandra,scheduler,redis,kafka,shiro,websocket

    https://blog.csdn.net/a123demi/article/details/78234023  : Springboot集成mybatis(mysql),mail,mongodb,c ...

  10. BindingException: Invalid bound statement (not found)问题排查:SpringBoot集成Mybatis重点分析

    重构代码,方法抛出异常:BindingException: Invalid bound statement (not found) 提示信息很明显:mybatis没有提供某方法 先不解释问题原因和排查 ...

随机推荐

  1. stm32直流电机驱动与测速学习总结

    通过实验发现,定时器的一个通道控制一个pwm信号. 在正式开始之前也可以参考这个视频学习资料 (stm32直流电机驱动) http://www.makeru.com.cn/live/1392_1218 ...

  2. 第33篇-方法调用指令之invokeinterface

    invokevirtual字节码指令的模板定义如下: def(Bytecodes::_invokeinterface , ubcp|disp|clvm|____, vtos, vtos, invoke ...

  3. C++链表常见面试考点

    链表常见问题: 单链表找到倒数第n个节点 用两个指针指向链表头,第一个指针先向前走n步,然后两个指针同步往前走,当第一个指针指向最后一个节点时,第二个指针就指向了倒数第n个节点. 判断链表有没有环 快 ...

  4. python re:正向肯定预查(?=)和反向肯定预查(?<=)

    参考资料:https://tool.oschina.net/uploads/apidocs/jquery/regexp.html (?=pattern) 正向肯定预查,在任何匹配pattern的字符串 ...

  5. js添加事件监听的方式与this

    js添加事件监听与this js添加事件监听的方式与this 在标签中调用自定义函数 DOM0级事件处理程序 DOM2级事件处理程序 this 代表谁? js添加事件监听的方式与this <di ...

  6. java中将double保留两位小数,将double保留两位小数并转换成String

    将Double类型的数据保留2位小数: Double a = 3.566; BigDecimal bd = new BigDecimal(a); Double d = bd.setScale(2, B ...

  7. RDD的缓存

    RDD的缓存/持久化 缓存解决的问题 缓存解决什么问题?-解决的是热点数据频繁访问的效率问题 在Spark开发中某些RDD的计算或转换可能会比较耗费时间, 如果这些RDD后续还会频繁的被使用到,那么可 ...

  8. IntelliJ IDEA 的 Bean validation 里有什么用

    IntelliJ IDEA  的 Bean validation 是指右侧的框. 平时都是缩起来的,今天心血来潮.研究下这个是干嘛的?怎么用. 三个按钮全按下的话,下面的项目就会有三个菜单可选项. C ...

  9. Linux系统僵尸进程详解

    大安好,我是良许. 本文我们将来讨论一下什么是僵尸进程,僵尸进程是怎么产生的,如何杀死一个僵尸进程. Linux中的进程是什么? 讲到进程,我们要先了解一下另一个概念:程序. 程序说白了就是躺在电脑硬 ...

  10. 大爽Python入门教程 1-2 数与字符串

    大爽Python入门公开课教案 点击查看教程总目录 1 整数与浮点数 整数大家都知道,比如1, 2, 10, 123, 都是整数int. 浮点数是什么呢? 上一节的除法运算,不知道有没有人注意到,其结 ...