2021
11-19
11-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...
继续阅读 >
由于项目中经常会使用到一些简单地关联查询,但是mybatisplus还不支持关联查询,不过在看官方文档的时候发现了mybatisplus的SQL拦截器(其实也是mybatis的)就想着能不能在SQL执行的时候做一些处理以至于可以支持关联查询,于是就动手开始了,目前还只是一个初步的demo,但是一些基本的关联查询功能经过验证是没有问题的环境信息jdk:1.8springboot:2.3.4.RELEASEmybatisplus:3.4.2lombok:1.18.12代码设计代码涉及四个关键的...
实现配置插件来到项目下的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...
导读Lombok:可以让你的POJO代码特别简洁,不止简单在BO/VO/DTO/DO等大量使用,还有设计模式,对象对比等MybatisPlus:增加版Mybatis,基础的数据库CRUD、分页等可以直接生成使用,避免了大量的重复低效代码,还有数据库自动Java类,sql文件等等,比传统的更贱简介易用SwaggerUI:接口文档自动生成,对接前端和测试更加方便,基于业界的OpennApi规范,采用Swagger3.x版本。技术栈SpringBoot2.4+MybatisPlus+Lombok+Swag...
发现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...
场景:前端修改给后台传递了几个空字符串。后台使用mybatisPlus作为dao层。结果发现空字符串也更新了,mybatisPlus的field-strategy设置为2非空;解决思路:查看mybatisPlus版本差异。发现field-strategy已经弃用,从3.1.2后使用下面这几个配置对非空进行判断insertStrategy类型:com.baomidou.mybatisplus.annotation.FieldStrategy默认值:NOT_NULL字段验证策略之insert说明:在insert的时候的字段验证策略目前没有默认...
逻辑删除你有没有见过某些网站进行一些删除操作之后,你看不到记录了但是管理员却能够查看到。这里就运用到了逻辑删除。什么是逻辑删除?逻辑删除的本质是修改操作,所谓的逻辑删除其实并不是真正的删除,而是在表中将对应的是否删除标识(deleted)或者说是状态字段(status)做修改操作。比如0是未删除,1是删除。在逻辑上数据是被删除的,但数据本身依然存在库中。对应的SQL语句:updateusersetdeleted=1whereid=1andde...
本文主要介绍了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)...
MySQL8将over作为了保留字,此时操作这个字段应当加``,在MybatispPlus中的做法为使用@TableField注解:同样的,如果表名是关键字,则使用@TableName注解@TableName("`over`")publicclassoverextendsBaseEntity{}补充知识:mybatis-plussql报错字段与Mysql关键字重名字段中包含describe字段,通过mybatis-plus插入数据一直报错,经排查,原来是与Mysql关键字重名在实体类中添加@TableField("`describe`")即可!以上这篇Mybatis...
今天使用argumenttypemismatch发现插入的时候报错java.lang.IllegalArgumentException:argumenttypemismatch从错误中看是参数的问题,想到我再实体类里面定义了几个在数据库中没有的字段,就使用了@TableField(exist=false)来排除掉这个字段。再跑发现还是这个错误,后来看了下主键的@TableId默认的type是IdType.NONE,想想我们应该用自增的id就手动增加了一个@TableId(type=IdType.AUTO)果然,再插入的时候就可以了。刚...
在学习MyBatisPlus时,简单的查询非常简单,只需继承了相关类,就能够进行增删改。但是在实际运用时,对象之间的关系非常复杂,一对多、多对一、多对多。网上查询了大量i资料都无法解决此问题。难道要把所有的用Mybatis的重写一次?重写一次Plus的方法还能不能用?实在没办只能查看官网https://mp.baomidou.com/guide/在注解处找到了可能的解决方案@TableName注解可以设置对应的resultMap看到这里我想是不是,在Mapper中设置好re...
Mybatis-Plus(简称MP)是一个Mybatis的增强工具,在Mybatis的基础上只做增强不做改变,为简化开发、提高效率而生。它已经封装好了一些crud方法,对于非常常见的一些sql我们不用写xml了,直接调用这些方法就行,但它也是支持我们自己手动写xml。帮我们摆脱了用mybatis需要写大量的xml文件的麻烦,非常安逸哦用过就不想用其他了,太舒服了好了,我们开始整合整合新建一个SpringBoot的工程这里是我整合完一个最终的结构,可以参...