草庐IT

Mybatis plus 多租户方案踩坑记录

公司的老项目要改造多租户,于是进入了大坑,本文写点遇到的坑以及解决方案,每次遇到问题在网上搜了好久,记录下来,防止以后忘掉。(一).方案网上有很多方案,本文只写最后一种,即:表增加租户id,实现数据隔离方案一:增加租户id,在每一个mapper调用的地方,都手工加上租户id例如:LambdaQueryWrapperlambdaQueryWrapper=newLambdaQueryWrapper();lambdaQueryWrapper.eq(Entity::getTenantId,"tenantId");entityMapper.selectList(lambdaQueryWrapper);复

Mybatis-Plus分页插件查询慢解决方案

问题需求反馈前端界面查询速度很慢。分析f12查看接口响应时间达到了5.47s。查看后端代码逻辑,就是传了些参数,分页查询了一个列表的数据。分页插件使用的是mybatis-plus的分页插件,PaginationInterceptor。把后端调用的sql单独拿出来在navicat中进行执行,才0.54s左右,其实很快了,数据量也不大。分页查询即使加上查总数的count语句,单独拿出来在navicat中执行,也很快。综上,总体来说这次响应速度慢和sql查询的关系不是很大,查看后台日志时发现,在打印出sql语句之后,会卡顿一会儿,随后才会输出count语句。查阅mybatis-plus插件的官网发现

vue3+element-plus 通过v-infinite实现下拉滚动无限加载

v-infinite官网v-infinite-scroll无限滚动组件使用详解1、v-infinite-scroll="load"//load无限滚动加载的方法2、infinite-scroll-disabled//是否禁用无限滚动加载3、infinite-scroll-delay//节流时延,单位为ms4、infinite-scroll-distance//触发加载的距离阈值,单位为px5、infinite-scroll-immediate//是否立即执行加载方法,以防初始状态下内容无法撑满容器。//默认情况下,infinite-scroll-disabled是false,因此如果组件使用无

element-plus日历(Calendar)动态渲染+避坑指南

效果图实战代码template>el-calendar>template#date-cell="{data}">el-row:class="data.isSelected?'is-selected':'sds'">{{data.day.split('-').slice(1).join('-')}}{{data.isSelected?'✔️':''}}/el-row>divv-for="(item,index)intextContent(data.day)":key="index">e-row>el-colclass="center">el-tagtype="warning"class="tag

未找到依赖项 ‘com.baomidou:mybatis-plus-boot-starter:3.5.3.1‘的解决方法

网上很多办法都试了,很多办法看不懂。用了以下方法报错马上消失:点击IDEA右边Maven栏生命周期里的install,等待一会后刷新。报错消失。 

javascript - Google Plus 按钮代码警告 : "Unsafe JavaScript attempt to access frame" in Chrome

尽管我在Chrome上使用的是Google推荐的代码,但我正在尝试向我的网站添加一个GooglePlus按钮,并不断收到JavaScript安全警告。我已经使用直接从Google网站管理员的recommendedcode复制的代码重现了错误,没有其他添加:(function(){varpo=document.createElement('script');po.type='text/javascript';po.async=true;po.src='https://apis.google.com/js/plusone.js';vars=document.getElementsByTag

javascript - Google Plus 按钮代码警告 : "Unsafe JavaScript attempt to access frame" in Chrome

尽管我在Chrome上使用的是Google推荐的代码,但我正在尝试向我的网站添加一个GooglePlus按钮,并不断收到JavaScript安全警告。我已经使用直接从Google网站管理员的recommendedcode复制的代码重现了错误,没有其他添加:(function(){varpo=document.createElement('script');po.type='text/javascript';po.async=true;po.src='https://apis.google.com/js/plusone.js';vars=document.getElementsByTag

mybatis-plus使用updateBatchById小记

//@Transactional(rollbackFor=Exception.class)publicBooleantest(){ListstaffInfos=this.list();staffInfos=staffInfos.stream().map(staffInfo->{if(staffInfo.getNumber().equals("0132791")){//如果number=0132791,则把元素设置成null,制造exceptionstaffInfo=null;returnstaffInfo;}else{staffInfo.setEntryTime(0L);returnstaff

element-ui / element-plus dialog 自定义层级

背景:         微前端集成后主子应用的dialog层级冲突导致主应用的弹窗被覆盖,主子应用的弹窗都是append到body下的, z-index自动生成  尝试方案:     1.根据官方Api给弹窗添加自定义class,并通过设置自定义class样式来控制;         ==>无效,因为生成的class是在子级,内部的一层,外层的el-dialog_wrapper没有添加自定义类名;解决办法:    1.沿着增加自定义类名的思路,使用最原始的方法操作DOM给el-dialog_wrapper 添加自定义类名methods:{showDialog(){this.visible=tr

mybatis-plus update更新操作(三种方式)

update更新操作(三种方式)Mapper层CRUD接口updateupdateByIdMyBatis-Plus(opensnewwindow)(简称MP)是一个MyBatis(opensnewwindow)的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。愿景我们的愿景是成为MyBatis最好的搭档,就像魂斗罗中的1P、2P,基友搭配,效率翻倍。Mapper层CRUD接口update//根据whereWrapper条件,更新记录intupdate(@Param(Constants.ENTITY)TupdateEntity,@Param(Constants.WR