202111-19 解决SpringBoot整合MybatisPlus分模块管理遇到的bug 前言这个Bug前前后后折腾了两天才找到答案,虽说不是完全两天的工作时间在调试这个问题,但是过程也确实曲折,所以做一下记录,也当做一次自我反省背景SpringBoot与MyBatis-Plus的pom依赖<!--SpringBoot版本--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.9.RELEASE</version><relativePath/><!--lookupparentfromreposit... 继续阅读 >
202108-08 mybatisplus 的SQL拦截器实现关联查询功能 由于项目中经常会使用到一些简单地关联查询,但是mybatisplus还不支持关联查询,不过在看官方文档的时候发现了mybatisplus的SQL拦截器(其实也是mybatis的)就想着能不能在SQL执行的时候做一些处理以至于可以支持关联查询,于是就动手开始了,目前还只是一个初步的demo,但是一些基本的关联查询功能经过验证是没有问题的环境信息jdk:1.8springboot:2.3.4.RELEASEmybatisplus:3.4.2lombok:1.18.12代码设计代码涉及四个关键的... 继续阅读 >
202103-24 MyBatisPlus PaginationInterceptor分页插件的使用详解 实现配置插件来到项目下的applicationContext.xml中配置sqlSessionFactoryBean的地方。<!--配置SqlSessionFactoryBeanMybatis提供的:org.mybatis.spring.SqlSessionFactoryBeanMP提供的:com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean--><beanid="sqlSessionFactoryBean"class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean"><!--数据源--><propertyname="dataSource"ref="dataSo... 继续阅读 >
202103-09 SpringBoot 开发提速神器 Lombok+MybatisPlus+SwaggerUI 导读Lombok:可以让你的POJO代码特别简洁,不止简单在BO/VO/DTO/DO等大量使用,还有设计模式,对象对比等MybatisPlus:增加版Mybatis,基础的数据库CRUD、分页等可以直接生成使用,避免了大量的重复低效代码,还有数据库自动Java类,sql文件等等,比传统的更贱简介易用SwaggerUI:接口文档自动生成,对接前端和测试更加方便,基于业界的OpennApi规范,采用Swagger3.x版本。技术栈SpringBoot2.4+MybatisPlus+Lombok+Swag... 继续阅读 >
202102-21 解决mybatisPlus null 值更新的问题 发现mybatisPlus会更新对象属性为null的值,与field-strategy配置有关mybatis-plus:global-config:db-config:field-strategy:not_null在3.1.0版本中,其选择的值有publicenumFieldStrategy{IGNORED,NOT_NULL,NOT_EMPTY,DEFAULT;privateFieldStrategy(){}}我刚开始选择的是ignored,所以null值会更新,像这样:改成not_null,就是这样了官网解释:该策略约定了如何产出注入的sql,涉及insert,update以及wrappe... 继续阅读 >
202102-20 在MyBatisPlus中使用@TableField完成字段自动填充的操作 场景官方文档:字段注解@TableFieldcom.baomidou.mybatisplus.annotations.TableField值描述value字段值(驼峰命名方式,该值可无)update预处理set字段自定义注入condition预处理WHERE实体条件自定义运算规则el详看注释说明exist是否为数据库表字段(默认true存在,false不存在)... 继续阅读 >
202102-20 解决mybatisPlus 中的field-strategy配置失效问题 场景:前端修改给后台传递了几个空字符串。后台使用mybatisPlus作为dao层。结果发现空字符串也更新了,mybatisPlus的field-strategy设置为2非空;解决思路:查看mybatisPlus版本差异。发现field-strategy已经弃用,从3.1.2后使用下面这几个配置对非空进行判断insertStrategy类型:com.baomidou.mybatisplus.annotation.FieldStrategy默认值:NOT_NULL字段验证策略之insert说明:在insert的时候的字段验证策略目前没有默认... 继续阅读 >
202101-21 MybatisPlus的IPage失效的问题解决方案 背景之前做数据抽取的时候,搭了一个mybatis动态数据源切换的架子。方便他们写抽取的代码。今天同事问我,架子里面的mybatisplus的IPage失效了是什么问题。想了一下,应该是写动态数据源的时候,我自定义的mybatis的配置覆盖了已有的配置。于是我让他先把我写的配置进行删除,看是否正常。得到回复,删除后正常。那么到此问题原因找到,接下来的解决方法,只要在配置中增加分页器即可。解决方案建立一个分页器的bean配置@Beanpubli... 继续阅读 >
202012-26 MybatisPlus实现逻辑删除功能 逻辑删除你有没有见过某些网站进行一些删除操作之后,你看不到记录了但是管理员却能够查看到。这里就运用到了逻辑删除。什么是逻辑删除?逻辑删除的本质是修改操作,所谓的逻辑删除其实并不是真正的删除,而是在表中将对应的是否删除标识(deleted)或者说是状态字段(status)做修改操作。比如0是未删除,1是删除。在逻辑上数据是被删除的,但数据本身依然存在库中。对应的SQL语句:updateusersetdeleted=1whereid=1andde... 继续阅读 >
202012-02 SpringBoot+MybatisPlus+Mysql+JSP实战 本文主要介绍了SpringBoot+MybatisPlus+Mysql+JSP实战,分享给大家,具体如下:放个效果图:准备项目首先在MySql控制台输入一下sql语句创建student数据库和student。createdatabsestudent;usestudent;CREATETABLE`student`(`stu_id`bigint(20)NOTNULL,`stu_name`varchar(45)DEFAULTNULL,`stu_sex`varchar(6)DEFAULTNULL,`date`varchar(45)DEFAULTNULL,`room`int(2)DEFAULTNULL,`acadimy`varchar(45)... 继续阅读 >
202012-02 mybatisplus解除分页限制的实现 前言如果你的mybatisplus的分页受到限制,例如每次只能查询500条或者1000条,不用担心,马上解除限制吧。解决方案在MybatisPlusConfig中配置paginationInterceptor.setLimit(-1);代表分页不受任何限制,当然如果对系统性能有限制,建议选择一个合理值,例如1w等。packagecom.softdev.system.config;importcom.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;importcom.baomidou.mybatisplus.extension.plugins... 继续阅读 >
202012-02 MybatisPlus:使用SQL保留字(关键字)的操作 MySQL8将over作为了保留字,此时操作这个字段应当加``,在MybatispPlus中的做法为使用@TableField注解:同样的,如果表名是关键字,则使用@TableName注解@TableName("`over`")publicclassoverextendsBaseEntity{}补充知识:mybatis-plussql报错字段与Mysql关键字重名字段中包含describe字段,通过mybatis-plus插入数据一直报错,经排查,原来是与Mysql关键字重名在实体类中添加@TableField("`describe`")即可!以上这篇Mybatis... 继续阅读 >
202011-25 解决mybatisplus插入报错argument type mismatch的问题 今天使用argumenttypemismatch发现插入的时候报错java.lang.IllegalArgumentException:argumenttypemismatch从错误中看是参数的问题,想到我再实体类里面定义了几个在数据库中没有的字段,就使用了@TableField(exist=false)来排除掉这个字段。再跑发现还是这个错误,后来看了下主键的@TableId默认的type是IdType.NONE,想想我们应该用自增的id就手动增加了一个@TableId(type=IdType.AUTO)果然,再插入的时候就可以了。刚... 继续阅读 >
202011-25 MyBatisPlus 一对多、多对一、多对多的完美解决方案 在学习MyBatisPlus时,简单的查询非常简单,只需继承了相关类,就能够进行增删改。但是在实际运用时,对象之间的关系非常复杂,一对多、多对一、多对多。网上查询了大量i资料都无法解决此问题。难道要把所有的用Mybatis的重写一次?重写一次Plus的方法还能不能用?实在没办只能查看官网https://mp.baomidou.com/guide/在注解处找到了可能的解决方案@TableName注解可以设置对应的resultMap看到这里我想是不是,在Mapper中设置好re... 继续阅读 >
202011-25 SpringBoot整合MybatisPlus的教程详解 Mybatis-Plus(简称MP)是一个Mybatis的增强工具,在Mybatis的基础上只做增强不做改变,为简化开发、提高效率而生。它已经封装好了一些crud方法,对于非常常见的一些sql我们不用写xml了,直接调用这些方法就行,但它也是支持我们自己手动写xml。帮我们摆脱了用mybatis需要写大量的xml文件的麻烦,非常安逸哦用过就不想用其他了,太舒服了好了,我们开始整合整合新建一个SpringBoot的工程这里是我整合完一个最终的结构,可以参... 继续阅读 >
202011-25 详解MybatisPlus集成nacos导致druid连接不上数据库 问题mp加密与druid和nacos结合,首次项目启动成功,后续访问无法连接数据库导致原因项目首次加载由于会去nacos读取一遍配置,刚好mp启动的时候也会去读取配置好key值,所以启动的时候不会报错由于nacos有自动刷新配置功能,后面自动刷新的时候mp不会再读取命令行配置key,导致无法解密,从而连接数据库失败解决方案知道原因之后,我们可以修改druid连接数据库的配置,因为druid自带数据库加解密,参考ConfigFilter类就可以知道,dr... 继续阅读 >