背景现代网络环境中,敏感数据的处理是至关重要的。敏感数据包括个人身份信息、银行账号、手机号码等,泄露这些数据可能导致用户隐私泄露、财产损失等严重后果。因此,对敏感数据进行脱敏处理是一种必要的安全措施。比如页面上常见的敏感数据都是加*遮挡处理过的,如下图所示。接下来本文将以SpringBoot和MyBatis框架实现返回数据的脱敏处理。脱敏工具脱敏工具有很多种,本文主要介绍和使用hutool工具包提供的脱敏工具类DesensitizedUtil,它提供了常见的手机号、身份证号、银行卡、邮箱等脱敏的方法,将敏感数据部分加*处理。使用方法如下:maven项目需要导入hutool包依赖,坐标如下:cn
作者今天在开发一个后台发送消息的功能时,由于需要给多个用户发送消息,于是使用了 mybatisplus 提供的 saveBatch() 方法,在测试环境测试通过上预发布后,测试反应发送消息接口很慢得等5、6秒,于是我就登录预发布环境查看执行日志,发现是 mybatisplus 提供的 saveBatch() 方法执行很慢导致,于是也就有了本篇文章。mybatisplus是一个流行的ORM框架,它基于mybatis,提供了很多便利的功能,比如代码生成器、通用CRUD、分页插件、乐观锁插件等。它可以让我们更方便地操作数据库,减少重复的代码,提高开发效率。注意:本文所使用的mybatisplus版本
省流: 在方法上直接加如下注解:@Transactional(propagation=Propagation.NOT_SUPPORTED)publicvoidt1(){//业务代码}正文:在测试的时候,有时候会希望在for循环中,代码循环一次就提交一次事务。方法一: 最简单的方式,就是关闭事务,不需要事务。添加注解如下:@Transactional(propagation=Propagation.NOT_SUPPORTED)publicvoidt1(){//业务代码}方法二:如果说是真的在生产上有这样的需要,每循环一次就提交事务,那就需要手动控制事务了。需要这几行代码:DefaultTrans
常用注解@TableNameMyBatis-Plus根据BaseMapper中指定的泛型(实体类型名)确定数据库中操作的表,如果根据实体类型名找不到数据库中对应的表则会报表不存在异常//向表中插入一条数据@TestpublicvoidtestInsert(){Useruser=newUser(null,"张三",23,"zhangsan@atguigu.com");//INSERTINTOuser(id,name,age,email)VALUES(?,?,?,?)intresult=userMapper.insert(user);System.out.println("受影响行数:"+resu
文章目录前言一、MyBatis与Hibernate有哪些不同?二、MyBatis的好处是什么?三、简述Mybatis的Xml映射文件和Mybatis内部数据结构之间的映射关系?四、什么是MyBatis的接口绑定,有什么好处?五、接口绑定有几种实现方式,分别是怎么实现的?六、什么情况下用注解绑定,什么情况下用xml绑定?七、MyBatis实现一对一有几种方式?具体怎么操作的?八、Mybatis能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别?九、MyBatis里面的动态Sql是怎么设定的?用什么语法?十、Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映
😎博主:小猫娃来啦😎文章核心:优雅而高效的JavaScript——Generator函数文章目录什么是Generator函数Generator函数的基本语法Generator函数的运行机制Generator函数的应用场景惰性计算异步操作迭代器Generator函数与普通函数的区别示例代码什么是Generator函数Generator函数是ES6中新增的一种函数类型,它可以用来生成迭代器对象。通过使用yield关键字在函数内部暂停和恢复代码的执行,Generator函数可以实现函数的暂停和恢复。Generator函数是一种特殊类型的函数,它可以在函数执行过程中多次返回值,并且可以通过next方法
目录1.介绍2.基本原理3.源码介绍3.1使用AOP拦截,方法执行前获取到当前方法要用的数据源3.2实现自定义 DataSource接口,实现DataSource接口的getConnect方法做动态处理1.介绍多数据源即一个项目中同时存在多个不同的数据库连接池。比如127.0.0.1:3306/test 127.0.0.1:3307/test 127.0.0.1:3308/test总之项目存在需要操作多个库的需求。具体在编码方面呢,具体就是一个service中,方法1使用库1查询,方法2使用库2查询。2.基本原理多数据源实现原理是什么呢?可分为两大关键部分1.使用AOP拦截,方法执行前获取到
本文针对笔者日常开发中对 Mybatis 占位符 #{} 和 ${} 使用时机结合源码,思考总结而来• Mybatis 版本3.5.11• Springboot 版本3.0.2• mybatis-spring 版本3.0.1•github地址:https://github.com/wayn111,欢迎大家关注,点个star一.启动时,mybatis-spring解析xml文件流程图Spring项目启动时,mybatis-spring自动初始化解析xml文件核心流程。流程图Mybatis在buildSqlSessionFactory()会遍历所有mapperLocations(xml文件)调用x
目录一、SpringBoot热部署1.1 添加DevTools依赖1.2 在idea中设置自动编译1.3 在Idea设置自动运行二、SpringBoot整合Mybatis2.1准备数据2.2添加相关依赖2.3在配置文件进行数据源配置2.4编写Mapper接口和Mapper文件2.5测试一、SpringBoot热部署热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用。即修改完代码后不需要重启项目即可生效。在SpringBoot中,可以使用DevTools工具实现热部署1.1 添加DevTools依赖首先我们需要在pom文件中引入devtools的依赖,如下: org.spring
💗wei_shuo的个人主页💫wei_shuo的学习社区🌐HelloWorld!Mybatis-PlusCRUD通用ServiceCRUD封装IService接口,进一步封装CRUD采用get查询、remove删除、list查询集合、page分页的前缀命名方式区分Mapper层避免混淆泛型T为任意实体对象如果自定义通用Service方法,可以创建自己的IBaseService继承Mybatis-Plus提供的基类IService对象Wrapper为条件构造器ServiceCRUD接口Save类型参数名描述Tentity实体对象CollectionentityList实体对象集合intbatch