202209-29 基于mybatis-plus timestamp返回为null问题的排除 目录问题是这样的数据库里的数据如下图表结构如下图handleResultSets的完整代码为通过代码跟踪,发现如下代码继而发现如下的核心代码通过断点发现以下数据再通过跟踪发现了如下代码直到看到这里问题是这样的在开发时,为了节约时间,我选择了mybatis框架来开发,然后又在网上找了一个许多人都推荐的mybatis-plus来作为持久层框架。于是乎我按照官方的DEMO下了一个springBoot的mybatis-plus版本的DEMO这个DEMO是基于H2数据库的,跑了... 继续阅读 >
202204-20 mybatis-plus中BaseMapper入门使用 目录入门使用BaseMapper完成增删改查BaseMapper各方法详解InsertDeleteUpdateSelect具体教程参考官网文档:baomidou.com/入门使用BaseMapper完成增删改查根据数据库表制作相应实体类@TableName(value="user")publicclassUserimplementsSerializable{privatestaticfinallongserialVersionUID=1L;@TableId(value="id",type=IdType.AUTO)privateIntegerid;privateStringname;privateStrin... 继续阅读 >
202204-20 MyBatis-Plus实现2种分页方法(QueryWrapper查询分页和SQL查询分页) 目录 1 MyBatisPlusConfig2 UserPagination3Mapper3.1UserMapper.java3.2UserMapper.xml4Service4.1UserService4.2 UserServiceImpl5 UserController6调试结果 6.1 QueryWrapper查询分页6.2 SQL查询分页 1 MyBatisPlusConfigMyBatisPlus配置类。packagecom.config;importcom.baomidou.mybatisplus.annotation.DbType;importcom.baomidou.mybatisplus.extension... 继续阅读 >
202201-12 MyBatis-Plus结合Layui实现分页方法 MyBatis-Plus使用简单,内置通用Mapper、通用Service,仅仅通过少量配置,即可实现单表大部分CRUD操作。下面介绍使用service中的page方法结合Layui前端框架,较快速的实现分页效果。在pom.xml中引入依赖<!--mybatisplus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatisplus.version}</version></dependency>使用MyBatis-Plus内置的map... 继续阅读 >
202201-12 springboot+mybatis-plus+oracle实现逻辑删除 最近在做一个前后端分离的小项目,需要删除用户表的用户,但是用户再别的表做了外键,所以只能做成逻辑删除,一通百度查资料后得以实现:1、用户实体类packagecom.sie.demo.entity;importcom.alibaba.fastjson.annotation.JSONField;importcom.baomidou.mybatisplus.annotation.TableField;importcom.baomidou.mybatisplus.annotation.TableId;importcom.baomidou.mybatisplus.annotation.TableLogic;importcom.baomidou.my... 继续阅读 >
202201-12 oracle+mybatis-plus+springboot实现分页查询的实例 今天蠢了一上午才弄出这玩意,话不多说上代码!1、建一个配置类packagecom.sie.demo.config;importcom.baomidou.mybatisplus.annotation.DbType;importcom.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;importcom.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;importcom.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;importorg.springframework.boot.au... 继续阅读 >
202110-20 mybatis-plus 使用Condition拼接Sql语句各方法的用法 mybatis-plusCondition拼接Sql语句各方法1.setSqlSelect—用于添加查询的列信息publicWrapper<T>setSqlSelect(String...columns){StringBuilderbuilder=newStringBuilder();String[]arr=columns;intlen=columns.length;for(inti=0;i$<len;++i$){Stringcolumn=arr$[i$];if(StringUtils.isNotEmpty(column)){if(builder.leng... 继续阅读 >
202110-12 MyBatis-Plus使用ActiveRecord(AR)实现CRUD 目录1.什么是ActiveRecord(AR)?2.通过AR实现CRUD1.1insert1.2update1.3delete1.4select1.什么是ActiveRecord(AR)?ActiveRecord是什么:每一个数据库表应该对应创建一个实体类,类的每一个对象的实例对应于数据库中表的一行记录;通常表的每个字段在类中都有相应的方法Field;ActiveRecord负责把自己持久化.在ActiveRecord中封装了对数据库的访问,通过对象自己实现CRUD,实现优雅的数据库操作。ActiveRe... 继续阅读 >
202110-12 Mybatis-plus在项目中的简单应用 目录分页插件逻辑删除自动填充乐观锁多数据源通用枚举id生成及主键查询LambdaQueryWrapper本文是一篇随笔,记录项目中应用的一些情景。Mybatis-plus是Spring框架中OOM的一大利器,其简单易用参考官网文档即可很快上手。mp.baomidou.com/guide/p6spy执行SQL分析打印,只需加入依赖,加入配置文件即可有完美的sql打印。有性能损耗线上不能使用分页插件只需注入插件即可,实在太方便了有没有。//最新版@BeanpublicMybat... 继续阅读 >
202109-14 MyBatis-Plus 使用枚举自动关联注入 目录什么是枚举自动注入?实际效果实现步骤踩坑解决方法参数解析总结什么是枚举自动注入?官方文档是这么解释的解决了繁琐的配置,让mybatis优雅的使用枚举属性!按我的理解是维护在内存中且不易修改的轻量级字典。目前觉得这个功能的使用场景相对有限,但是如果有用到的话开箱即用也是很棒的。废话不多说,接下来让我们看一下它的实际效果吧。实际效果通常情况下,我们会这样声明一个用户实体publicclassUser{privateSt... 继续阅读 >
202109-14 MyBatis-Plus通用枚举自动关联注入的实现 目录一、通用枚举二、声明通用枚举属性三、配置扫描通用枚举四、注意、注意、注意一、通用枚举解决了繁琐的配置,让mybatis优雅的使用枚举属性!按我的理解是维护在内存中且不易修改的轻量级字典。目前觉得这个功能的使用场景相对有限,但是如果有用到的话开箱即用也是很棒的。废话不多说,接下来让我们看一下它的实际效果吧。一般搜索用户信息列表,列如用户有禁用和启用两个状态@DatapublicclassUserimplementsSerializabl... 继续阅读 >
202108-23 Mybatis-Plus的SQL语句组拼原理说明 记录查找自动组拼SQL语句的过程首先在BaseMapper其中的一个方法下打个断点在断点显示的值栏找到相关的SQL发现SQL语句在MappedStatement对象中,而sqlSource存的就是相关的sql语句然后在MappedStatement这个对象打断点,看看到底是哪个对象对它进行了操作发现是AutoSqlInjector创建了MappedStatement在AutoSqlInjector对象找到与selectById相关的一个方法,打断点SqlSource果然在这里创建出来了,createSqlSource就是具体过程,然后... 继续阅读 >
202107-16 Mybatis-Plus的应用场景描述及注入SQL原理分析 目录一、背景1.1传统Mybatis的弊端1.2MyBatis-Plus的定位1.3特性1.4原理解析二、准备工作2.1基础接口BaseMapper2.2创建实体类对象2.3业务接口UserMapper2.4测试用例三、SQL语句存储在哪里?四、SQL语句是什么时候注入的?4.1AbstractMethod.addMappedStatement4.2AbstractMethod.inject五、SQL语句是怎么生成的?5.1SQL模板5.2SqlSource5.3数据库表信息是如何获取的?六、mapper文件被添加的过程七、总结7.1流程梳理... 继续阅读 >
202107-12 浅谈MyBatis-plus入门使用 目录一、初始化SpringBoot项目二、创建数据表三、在application.yml中配置mysql信息四、编写用于测试的实体类五、编写操作实体类的Mapper类六、启动类中扫描Mapper类七、写一个测试类八、配置日志九、遇到的两个坑十、总结一、初始化SpringBoot项目首先使用SpringInitializer脚手架初始化一个SpringBoot项目。然后在pom.xml中添加相关的依赖:<dependency><groupId>mysql</groupId><artifactId>mysql-c... 继续阅读 >
202105-23 SpringBoot+Shiro+Redis+Mybatis-plus 实战项目及问题小结 前言完整的源代码已经上传到CodeChina平台上,文末有仓库链接🤭技术栈前端htmlThymleafJquery后端SpringBootShiroRedisMybatis-Plus需求分析有1和2用户,用户名和密码也分别为1和2,1用户有增加和删除的权限,2用户有更新的权限,登录的时候需要验证码并且需要缓存用户的角色和权限,用户登出的时候需要将缓存的认证和授权信息删除。数据库E-R图设计其实就是传统的RBAC模型,不加外键的原因... 继续阅读 >
202105-09 Mybatis-Plus根据时间段去查询数据的实现示例 业务需求:在前端界面选择开始时间、结束时间,后台根据拿到的开始、结束时间去数据库中查询该段时间的数据集返回给前端界面。1、前端我使用的是elementUI和vue框架,最好是在前端界面进行一个简单的校验规则,对比一下开始时间和结束时间的大小,校验的代码很简单,直接在触发查询按钮的函数前面加入校验即可。代码如下:if(this.StafPsnClctDetlDFormQuery.startTime>=this.StafPsnClctDetlDFormQuery.endTime){this... 继续阅读 >