一、确认mybatis-plus-boot-starter版本3.4.0版本对此部分有更新,如果是旧版本升级,会出现分页失效问题,同时idea会提示PaginationInterceptor过时,新版本改用了MybatisPlusInterceptor二、Mybatis-plus3.4.0版本配置更改新版配置后,分页功能正常,注意DbType.MYSQL改为自己使用的数据库类型,否则分页也不生效@ConfigurationpublicclassMyBatisPlusConfig{/*旧版本配置@BeanpublicPaginationInterceptorpaginationIn...
继续阅读 >
分类:MyBatis-Plus
2020
11-19
11-19
Mybatis或Mybatis-Plus框架的xml文件中特殊符号的使用详解
在Mybatis的xml文件中,很多特殊符号是无法直接使用的,需要使用实体引用,假如在XML文档中放置了一个类似“<”字符,那么这个文档会产生一个错误,这是因为解析器会把它解释为新元素的开始。原符号、实体引用、CDATA对照表号、实体引用、CDATA对照表原符号实体引用CDATA说明<<<![CDATA[<]]>小于<=<=<![CDATA[<=]]>...
继续阅读 >
.循环添加接口处:分别是void无返回类型;有的话是(resultType)返回类型,参数类型(parameterType)list, 如:在mapper文件中分别对应ID,参数类型和返回类型。循环处理,如下:<insertid="insertPack"parameterType="java.util.List">insertintot_ev_bu_pack(PACK_CODE,BIN,PACK_PROD_TIME,CREATED_DATE,CREATED_BY,BATTERY_CLASS,SUPPLIER_NAME,TERMINAL_USER)values<foreachc...
继续阅读 >
2020
11-16
11-16
MyBatis-Plus+Druid配置及应用详解
Mybatis-Plus的配置1.Maven插件velocity-engine-core是mybatis-plus自动生成代码所依赖的模板(不用自动生成代码功能可不用)<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.0.6</version></dependency><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.2</version></dependency>2.appl...
继续阅读 >
2020
11-16
11-16
MyBatis-Plus实现多数据源的示例代码
多数据源的目的在于一个代码模块可调用多个数据库的数据进行某些业务操作。MyBatis-Plus开发者写了一个多数据源叫dynamic-datasource-spring-boot-starter,非常简单易用。dynamic-datasource-spring-boot-starter文档官方文档部分截图:第三方集成的,基本上是目前比较主流的(用的比较多)。一、添加Maven依赖<dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-starter</artifactId>...
继续阅读 >
2020
11-16
11-16
MyBatis-Plus之逻辑删除的实现
特别是互联网项目,对于数据一般是不能删除的(涉及到后面的数据分析),这就涉及到逻辑删除。所谓逻辑删除指的是数据并不是真正的删除,只是改数据表对应数据的状态(数据表中通常有一列叫delFlag,以此标识正常状态或删除状态)。逻辑删除一般都是更新操作,但写大量更新方法无疑是增加代码量,MyBatis-Plus又是如何实现逻辑删除的呢?其实很简单一共两步。一、配置文件配置mybatis-plus:global-config:db-config:logic-delete-v...
继续阅读 >
2020
10-20
10-20
Mybatis-Plus的使用详解
一、特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本CURD,性能基本无损耗,直接面向对象操作,BaseMapper强大的CRUD操作:内置通用Mapper、通用Service,仅仅通过少量配置即可实现单表大部分CRUD操作,更有强大的条件构造器,满足各类使用需求,以后简单的CRUD操作,它不用自己编写了!支持Lambda形式调用:通过Lambda表达式,方便的编写各类查询条...
继续阅读 >
2020
10-15
10-15
使用Mybatis-plus策略自动更新数据库时间失败问题解决
引言在mybatis项目中,我们一般会使用它的插件plus以扩充它的基本查询功能。另一方面,在阿里巴巴开发手册的规范中也提到,在数据库表创建的时候,一般会有一个create_time和update_time字段,它们的建表语句往往如下:'create_time'timestampNOTNULLDEFAULTCURRENT_TIMESTAMP,'update_time'timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,创建者则是希望在行insert的时候会自动生成create_time...
继续阅读 >
2020
10-15
10-15
关于Mybatis-Plus字段策略与数据库自动更新时间的一些问题
字段策略0:”忽略判断”,1:”非NULL判断”),2:”非空判断”问题描述:当字段策略为0“忽略判断”的时候,如果实体和数据库有字段是需要自动更新的,例如update_time,更新某条记录的时候自动刷新update_time,理论上我们在业务控制的时候是不需要设置update_time的,利用数据库特性就好,但是在该字段策略下,业务逻辑要更新字段(没有主动设置update_time),这时候因为忽略判断,数据库(我这里是MySql)是不会去更新update_...
继续阅读 >
2020
10-10
10-10
mybatis-plus 返回部分字段的解决方式
mybatis-plus的代码生成器会在实体类中生成数据库所有字段,我们去用mapper接口查询时,会返回数据库所有的字段。但有些字段不是我们想要的,比如:deleted,所以我们可以在不需要的字段上面加@JsonIgnore注解,返回给前端的时候会自动把这个字段去除。补充知识:Mybatis-Plus只查询特定字段与创建子类方法Mybatis-Plus查询特定字段例子:Sealseal=sealService.selectOne(newEntityWrapper<Seal>().setSqlSelect("sealName").eq...
继续阅读 >
2020
10-10
10-10
Springboot mybatis-plus配置及用法详解
本节内容扩展介绍下针对mybatis的增强工具mybatis-plus,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。二话不多说,我们先写编写个简单的例子,让大家先初步的了解下mybatis-plus。1.mybatis-plus初步实例(1)创建一个springbootweb工程(具体创建过程就不再演示了,还不会的同学去看看springboot专题第一节内容)(2)引入依赖<!--web项目依赖--><dependency><groupId>org.springframework.boot</group...
继续阅读 >
第一步:加入mybatis-plus依赖第二步:配置数据源spring:thymeleaf:cache:falseencoding:utf-8prefix:classpath:/templates/suffix:.htmlenabled:truedatasource:url:jdbc:mysql://192.168.1.152:3306/timo?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT%2B8driver-class-name:com.mysql.cj.jdbc.Driverusername:rootpassword:roo...
继续阅读 >
2020
10-10
10-10
mybatis-plus 版本不兼容问题的解决
mybatis-plus版本不兼容问题1,mybatis-plus版本中存在一个问题。2,mybatis-plus-extension版本为v3.2.1.1-SNAPSHOT以上版本时使用其PaginationInterceptor分页插件时。3,mybatis-plus-core版本也需要升级到v3.2.1.1-SNAPSHOT以上。4,因为在PaginationInterceptor类中此位置使用了mybatis-plus-core包中toolkit/StringUtils工具类中的isNotBlank(),但是低版本中缺乏isNotBlank()方法。5,会造成使用PaginationInterceptor...
继续阅读 >
2020
10-10
10-10
详解关于mybatis-plus中Service和Mapper的分析
在后端开发过程中,如果有用到mybatis-plus,肯定会发现在其内部存在着两种数据库操作接口,Iservice和BaseMapper,如果只是用增删改查会发现两者的功能是一致的,除了方法名称有所不同,其他的基本相似。对此,我颇为好奇,便打开两个接口的源码进行对比。先演示一下基本开发中的继承关系,手动创建的Service继承于ServiceImpl,并加载自己创建的Mapper@ServicepublicclassRestDeptServiceextendsServiceImpl<RestDeptMapper,...
继续阅读 >
2020
10-10
10-10
springboot整合Mybatis-plus的实现
1.添加pom引用maven的引用很简单,官方已经给出starter,不需要我们考虑它的依赖关系了,此处使用的是2.3版本。<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>2.3</version></dependency>2.配置server.port=8080#mysqlspring.datasource.url=jdbc:mysql://localhost:3306/ease-run?useUnicode=true&characterEncoding=utf8spring.datasource.username=roots...
继续阅读 >
mybatis-plus的selectById/selectOne查询结果偶尔出错(为null)的问题记录错误截图:亲测重复执行此段代码10次中大概会有连续的2次出现结果为null的情况。由于后续还需引用到这个查询结果的某些字段信息,会导致程序出现空指针异常,故投机取巧做了如下处理(加了一个while循环让其一直执行selectById(或者selectOne)直到查询结果不为空):但这终归不是从根本上解决了问题。我也不清白他出现这个问题的根本原因是什么。到此这篇...
继续阅读 >