
代码记录
文章平均质量分 58
内容中主要以解决问题、需求的代码居多,可查看详细代码
北极糊的狐
任何人都会有遇到问题的时候,只是有些人会去积极解决问题,而有些人却慢慢的被问题压垮所解决了,无论对事还是对人
展开
-
使用 Java Stream API 对集合进行流式处理,基于集合中每个元素进行转换,然后输出一个新集合
总结来说,这段代码的作用是将 DdcView 列表中的每个对象映射为 RelaDto对象,并返回这些 DTO 对象的列表。这段代码的功能是从 DdcView 实体列表转换为 RelaDto数据传输对象(DTO)列表。对每个 DdcView 对象(变量名为 stu),创建一个新的 RelaDto对象(变量名为 item)。设置 RelaDto的 name 属性为 DdcView 的name。设置 RelaDto的 id 属性为 DdcView 的 id。将每个转换后的 RelaDto收集到一个新的列表中。使用原创 2025-02-19 08:40:16 · 162 阅读 · 0 评论 -
使用@JsonSerialize注解给页面列表诸如身份证之类的敏感数据实现脱敏
1.首先可以先定义一个Vo专门用于接收数据列表在脱敏页面展示,不建议直接在实体类字段上处理,因为可能别的业务可能还需要使用实体类。使用@JsonSerialize注解给页面列表诸如身份证之类的敏感数据实现脱敏。2.在需要做脱敏的字段加上这个字段,指定using=一个类名。(我这里是把身份证号码11到14位替换为*号再给前端做展示)4.最后我这里这个字段还根据不同的证件类型,兼容三种证件号码。3.然后创建这个类,在里面定义脱敏规则即可。原创 2025-02-18 08:34:16 · 229 阅读 · 0 评论 -
使用 Java Stream API 对集合进行流式处理:将集合中某个字段的所有数据提取出来,并用逗号连接成一个字符串。
总结来说,这段代码的作用是将 iceList 列表中所有品牌的名称提取出来,并用逗号分隔后拼接成一个字符串,存储在iceName 变量中。例如,如果 iceList 包含的品牌名称是 ["Apple", "Samsung", "Huawei"],那么 iceName 的值将是 "Apple,Samsung,Huawei"。map(iceView::getName) 方法对流中的每个 iceView对象调用 getName 方法,提取出品牌名称,生成一个新的流,其中每个元素都是一个品牌名称。原创 2025-02-17 08:44:54 · 159 阅读 · 0 评论 -
java记录:为确保selectOne不出异常的解决办法
因为代码是在执行一个查询操作,并且预期结果是唯一的(例如查找某个特定的保险政策),那么拼接 LIMIT 1 是合理的做法,以确保查询结果的唯一性和提高查询效率。在业务中,只需要通过条件查一条记录取其数据即可完成功能的情况下,有时候用selectOne会查出多条,其实都没错,只是需要的重点数据一样,只需一条。给查询最后带上"LIMIT 1"原创 2025-02-13 10:39:05 · 208 阅读 · 0 评论 -
SQL中,# 和 $ 用于不同的占位符语法
预编译处理:#{} 中的内容会被视为一个 JDBC 预编译语句的参数。直接替换:${} 中的内容会被直接替换为变量的值,不会进行预编译处理。这相当于将变量值直接拼接到 SQL 字符串中。存在 SQL 注入风险:由于是直接替换,如果输入未经严格校验,可能会导致 SQL 注入攻击。防止 SQL 注入:由于使用了预编译语句,可以有效防止 SQL 注入攻击。类型安全:MyBatis 会根据 Java 类型自动处理数据类型的转换。灵活性:适用于一些动态 SQL 场景,例如表名或列名的动态替换。原创 2025-01-03 10:26:55 · 499 阅读 · 0 评论 -
@Transactional 注解详解
注解是 Spring 框架中用于简化事务管理的强大工具。通过合理使用该注解及其属性,可以有效地管理和控制事务的行为,确保数据的一致性和完整性。原创 2024-12-19 13:08:23 · 891 阅读 · 0 评论 -
未曾加载Lodop主JS文件,请先调用loadCLodop过程TypeError: Cannot read properties of undefined (reading ‘PRINT_INIT‘)
在使用Lodop控件时,发现了几个问题,先分不同的情况先记一下,功能结束后再复盘。原创 2024-12-01 09:32:37 · 425 阅读 · 1 评论 -
vue中v-for的细节
通过在vue控制台调试可以发现v-for默认行为会尝试原地修改元素,比如原地修改了书架数据后,并不知道删的是哪个li的位置,就依旧把剩余的三个li的数据塞回前三个li进去了,而第一个li的背景颜色依然是粉色。所以在使用v-for时,还是要把唯一标识key加上,这样才能正确区分识别到每一个元素,不然需要前两个就只是直接放进去前两个的位置。3.推荐使用 id 作为 key(唯一),不推荐使用 index作为 key(会变化,不对应)1.key 的值只能是 字符串 或 数字类型。原创 2024-12-01 09:28:29 · 336 阅读 · 0 评论 -
通过 row 和 col 组件,并通过 col 组件的 span 属性完成1:1和2的组合布局
在页面布局的时候如果出现这种需要组合布局时,可以使用row 和 col 组件快速搭建。写两个值为12的span,把左侧和右侧元素分开放在里面,下面再写一个值为24的span放地址给短的设置值为12的span,有地址这种需要占一整行的再写一个值为24的span来放原创 2024-11-26 11:23:57 · 405 阅读 · 0 评论 -
Type definition error: [array type, component type: [simple type, class java.lang.String]]; nested e
然后这里批量执行没有问题,后端正常接收到数组,Arrays.asList把String [] ids转List后updateBatchById(ldList)查询,list.stream().forEach校验domain合法性后改字段状态、赋值,然后一股脑丢给updateBatchById就完了后端非常简单;首先记录一下业务类型,这是一个批量下发功能,点击下发按钮弹窗完善下发情况,除了要批量操作的业务id,还要改每一条的状态和加备注;/** 业务IDs */ String [] ids;原创 2024-11-25 10:02:34 · 2385 阅读 · 0 评论 -
使用Element的el-date-picker组件学习:下拉框基于一个时间段的查询功能
后端由于实体类继承了BaseEntity ,所以可以用Map params来接刚刚这两个参数即可。如图:是Element提供的基于时间段查询的组件, 例如查支付时间处于11.1到11.3时间段内的发货信息。xmll里面直接加上判空,接入业务字段进行时间段查询查询即可。前端需要先在config.js里面注册。最后记得在重置操作里单独给写一个置空。下面这个是用between写。条件查询里面直接使用即可。页面先在data中定义。原创 2024-11-25 10:01:34 · 413 阅读 · 0 评论 -
用stream().anyMatch判断list至少有一个状态为指定状态
比如循环判断对象集合中,至少要有一个对象的State为"0"List list=new List()list.stream().anyMatch(s->s.getState().equals("0"))原创 2024-11-09 08:37:51 · 133 阅读 · 0 评论 -
使用stream遍历对象集合,取出所有对象的某字段,并以逗号拼接起来
phoneBrands 是所有手机品牌数组,下面使用stream来把品牌名用逗号分隔 拼接起来。List phoneBrands = brandsService.getBrandsByIds(id);String phoneName = phoneBrands.stream().map(phoneBrands::getPhoneName).collect(Collectors.joining(","));原创 2024-11-07 10:05:03 · 395 阅读 · 0 评论 -
@Excel若依导出异常/解决BusinessBaseEntity里面的字段不支持导出
到这里一般就可以解决了,但如果到这里还不行可以试试我下面这个方法,通过反射去获取导出的实体类的父类的带@Excel注解的字段,再把子类的值赋值上来,进行导出。5.最后记得检查一下工具类是否含有get、set方法或者使用了lombok的情况下直接在类上加上@Data注解。3.所需要导出的字段是否加上@Excel注解。1.先看库里有没有数据。2.看字段名是否对其。原创 2024-11-01 16:52:18 · 1121 阅读 · 0 评论 -
$tab的所有用法以及vue关闭页面的方法汇总
然后如果有跳转需求,可以const obj = {path:"/xxx/xxx"}//然后打开新页面。点击新增和修改按钮时,把状态置为true即可进行显示,另外,如果需要$tab的其他方法汇总可以参考。新增和修改完成后,点击确定按钮就隐藏起来。点击取消按钮时把状态也置为false即可。在最外层绑定open。初始值设为false。原创 2024-10-31 22:11:28 · 592 阅读 · 0 评论 -
SQL查询未到期时间/有效期内的数据
遇到个需求是需要查询有效的一些数据,所以要以到期时间作为过滤条件,把到期时间大于到期时间的数据返回;可以直接用 < > 即可 到期时间是now( )原创 2024-03-21 17:47:40 · 643 阅读 · 0 评论 -
No primary or single unique constructor found for interface java.util.List‘
因为获取controller参数是在进入controller方法之前(因为需要转换成controller需要的参数),那是处理器映射过程中的问题。处理器映射需要将请求路径与@RequestMapping 匹配。这个过程还需要映射参数。而Spring MVC获取参数不带注解的唯一要求就是参数名和Http请求参数名一致。一般的 List 参数只是用逗号分隔。不会有所谓的名字,所以才有可能。解决办法是加上此注解即可。原创 2024-03-20 09:46:58 · 3077 阅读 · 0 评论 -
Mybatis传参parameterType方法汇总记录
在入参只有一个的情况下,Mapper.java中直接传即可、而在参数有两三个的情况下,Mapper.java中可以用@Param注解来指定入参.在单表查询时,一个实体类就可以满足所有查询条件入参 然后如果有了简单的表关联,一个实体类可能满足不了所有查询条件入参,可以建一个DTO什么的,继承于实体类,再设置特殊的参数 在复杂的多表关联情况下,可以直接创建一个Model,然后把实体类、DTO、VO甩进去,提供get、set方法即可 如果在某些多表关联条件下,字段数量不多,但存在于多个实体类,就可以不用创建mod原创 2023-09-07 17:32:18 · 3412 阅读 · 0 评论 -
java后端为前端提供接口,将数据以树形结构返回(工具类hutool.core.lang.tree)
这里直接上代码,基本可以直接拿去用,把父id和名称做对应的修改就完了,里面先把使用数据查出来,创建工具类并设置id、树结构标识ParentIdKey、名称,再调build方法把查出来的数据和工具类放进去就行了(其中。//父id 必填属性。log.info(JSONUtil.toJsonStr("tree数据:" + treeNodes));//父id在库里命名为groupId。原创 2023-04-28 16:09:40 · 1774 阅读 · 1 评论 -
团队长撤销报错500,因字段取消导致的查询异常
在团队管理里面可以给团队设置团队长,然后还可以点击"撤销按钮"进行撤销操作。但是撤销的时候一点击"撤销"按钮就直接报500服务器异常了。点击撤销按钮时,显示详细信息。进撤销方法 调这个接口。.........原创 2022-08-05 11:59:30 · 221 阅读 · 0 评论 -
数据主键重复导致的详情页面(修改)点击即报错
数据主键重复导致的今天,发现有很多员工的五险一金数据不能修改,一点击修改按钮就报错这里发现查询是可以的,展示出来后选中一条数据,点击"修改"按钮,就报500了而正常情况应该是这样子:检查对比了一好一坏两条数据的各个字段,发现"有效状态"都是"有效",而且有效起期和止期也都是正常的,且一模一样并且发现浏览器控制台报错是这个接口500,但是有一些数据是可以正常访问的啊,为什么这个不行?直接报500。原创 2022-08-02 15:27:53 · 1062 阅读 · 0 评论 -
当一个下拉框的选项发生值改变时,页面上其他元素展示也同步变化
4、有些情况下可以使用style.visibility来代替style.display,但是要注意的是style.visibility隐藏元素时会保留元素在页面上所占的空间,而style.display隐藏元素且让出所占页面空间。1、如果在样式文件或页面文件代码中直接用displaynone对元素进行了隐藏,载入页面后,在没有通过js设置样式使元素显示的前提下,使用js。displaynone---不为被隐藏的对象保留其物理空间,即该对象在页面上彻底消失,通俗来说就是看不见也摸不到。...原创 2022-07-29 15:50:29 · 1914 阅读 · 0 评论 -
JS中发请求获取数据做校验,实现弹窗提示,而不是发请求在后端验证导致页面数据刷新需要重新录入
人员新增功能有职级划分,新员工信息录入会精确到具体机构下具体团队中,而如果入司员工的职务类型是销售助理,那么就要对其加入的团队进行等级校验;因为看到最新的需求基本法里面提到,要规模达到七级的团队才能加入销售助理;(下图为员工信息录入页面职级部分)1.可以在调后端add新增员工接口中,先取到输入框的职务类型和团队等级,去调一下员工等级相关表的impl查一下等级来再做一下判断,是不是要在七级以下的团队加入销售助理,JS中发请求获取数据做校验,实现弹窗提示,而不是发请求在后端验证导致页面数据刷新需要重新录入...原创 2022-06-09 16:57:50 · 699 阅读 · 0 评论 -
SQL新建查询中→ORA-00905: 缺失关键字、 ORA-01722: 无效数字、ORA-00932: 数据类型不一致
select nvl(sum(nvl(t.xxxxxxx,0) * nvl(t.xxxxxxx,1) * nvl(tpdc.xxxxxxx,0)),0) into sp_sum_fee from intf_policy t left join (select * from xxxxxxx where (EXISTS(select * from xxxxxxxwhere xxxxxxx='0104') and xxxxxxx='0104') or (...原创 2022-05-17 16:37:43 · 9316 阅读 · 0 评论 -
优雅的分页/不分页两种情况查询(1.6)
这个接口是我之前写的,内部会模糊查、全查,然后把结果数据以分页查和非分页六种情况返回,但之前写的还是不够精简,如果不分页的话会查两次,所以这里改了一下。逻辑是:前面直接使用buildPage()创建了分页结构,后面校验,如果分页参数size传0,即不需要分页时就直接把上面buildPage()的分页结构拿过来赋值, 把Records给set上值返回即可;否则就是需要分页,调selectPage方法,把分页参数page丢进去执行,即可返回,但是selectPage这个方法不但会处理page进行分页查了进行原创 2022-01-06 18:33:59 · 1265 阅读 · 0 评论 -
系统全局参数进行编辑和获取(2021.11.5)
需求如下:这是前端页面的一个小模块,当点击上面三个小标题时,下面会各自显示对应分值区间或阈值,我需要为其提供一个接口,根据用户点击的入参去数据库将各个数据查出来返回给前端,或者根据修改内容做入参修改对应数值更新到数据库第二版(最终)之前的版本和前端对接后察觉不太合理,效率太低,比如查一个弱项指标阈值需要查三次,修改也得一个一个改,于是提取集成了批量查、改接口,即入参是这三个大标题(弱项指标阈值,星级评定,数字化成熟度)...原创 2021-11-23 15:29:08 · 833 阅读 · 0 评论 -
添加指标(本归属本班组和不归属,立即生效和下周期生效)
系统内有普通的1.通用指标(不分专业,默认每个班组必填), 2.专业指标(每个指标默认归属于对应专业的班组)所以每个班组默认归属的指标:默认归属的通用指标+本班组对应专业的指标 默认不归属的指标:专业指标中和本班组专业不同的指标指标管理员可以设置默认不归属的归属,默认归属的不归属,并且可以设置本周期生效和下周期生效还可以设置每个周期起始月份数据库c_team_index表:...原创 2022-01-05 11:18:24 · 559 阅读 · 0 评论 -
排除指标(本归属本班组和不归属,立即生效和下周期生效)
//排除指标填报评分任务 @Override public R<String> cancelindexFillTasks(IndexTeamVO indexTeamVO) { String msg; Long teamId = indexTeamVO.getTeamId(); Long indexId = indexTeamVO.getIndexId(); int isNowEffect = indexTeamV..原创 2021-12-30 17:54:01 · 323 阅读 · 0 评论 -
专业表操作鉴权(增、删、改、id查、全查、名字模糊查)
第一版已上线,开始丰富项目功能,给专业表写了几个基础接口总结:0、一般这种对数据库直接操作的接口尽量对用户权限以角色进行约束1、新增时,要拿入参专业名查重2、修改、删除时,要拿入参id查一下是否存在3、修改、删除、查询时,最好对入参id进行合法性判断,防穿透4、修改时,还要拿入参专业名查重;专业名和已存在的所有班组比较,不能重复;注意:这里比较之前先剔除自己,因为有可能只是改本专业的描述,是不修改专业名的,所以可以传当前id对应的的专业名5、id查、全查、专业名模糊查都可以在控制原创 2021-12-15 18:02:38 · 652 阅读 · 0 评论