- 博客(69)
- 收藏
- 关注
原创 Java实习记录 9 ——使用mybatis在xml文件中添加一条数据返回生成的主键 id
标签,为了实现添加完成后返回数据库生成的自增主键 id,主要使用useGeneratedKeys、keyColumn、keyProperty 这三个属性。接触到一个需求为,向数据库中添加一条数据时,同时要向另一张关系中间表添加数据,这就要求第一次添加时要返回数据库生成的主键 id 提供给在添加关系表时使用。标签将常用的 sql 语句提取出来,如查询字段、查询对应的表等。更加熟练使用 mybatis 面对复杂情景的使用。xml 编写插入 sql 语句时,主要使用。在 xml 中编写语句时,可以使用。
2024-09-28 15:48:43
388
原创 Java实习记录 8 ——使用 XSSFWorkbook 实现复杂表格下载(背景色、对齐方式、单元格合并等操作)
要求实现对课程数据进行 Excel 表格下载。生成课程时有三种不同的阶段,所有有三种 Excel 表格下载。使用到 XSSFWorkbook 解决。表格主要包含三部分,第一行为课程名称等信息;第二行为课程单元信息的表头;第三行及之后为主要的课程单元信息,包括单元名称、单元描述等等。学会了一种下载 Excel 的方法,加强了对复杂 SQL 语句的编写能力,了解了企业开发的代码规范重要性。根据需要给对应单元格设置样式即可,这类给出一些示例。4)根据数据依次设置每行数据。
2024-08-17 11:28:26
519
原创 Java实习记录 7 ——使用 Callable 多线程优化接口开发
主要要求查询,课程的名称、课程适合的年龄段、包含单元数量、周计划数量、活动数量以及最后一次更新时间。该接口的 service 层实现类方法中,首先进行参数校验,获取分页参数以及登录用户信息,校验他们是否为空,不为空进行数据查询。使用多线程并发到三个不同数据库中查询,最后同时获取结果,不必再等待上一个执行结束,下一个可并发执行,加快了接口响应速度。在企业中实践了多线程的使用,实现不仅仅把功能完成,同时也进行了对接口的优化,积累了跟多企业开发经验。主要在统计课程单元数量、周数量、活动数量时使用了多线程。
2024-08-06 20:02:21
318
原创 Java实习记录 6 ——企业开发流程
上回提到,开完需求评审的会议后,组长将这次需求实现交由我来负责。拿到需求文档和设计原型,我便开始了这次需求实现的详细设计文档的编写,主要包括需求包括的功能点,实现需求所用的的数据结构,要增加或修改的接口有哪些等等。编写完详细设计后,进行了详细设计评审,产品和设计查看有没有遗漏的功能点,开发组长查看是否能正确实现,测试开始构思编写测试用例。这次主要来介绍详细设计评审后面的流程。
2024-08-03 16:15:38
280
原创 Java实习记录 5 ——多语言环境下实现对接口响应内容翻译
其他不需要改变,仅仅对原接口的 response 进行处理,根据 Key 获取要翻译的属性,使用 ObjectMapper 将 response 解析为字符串对象,在将其转为 JSON 对象,利用递归遍历对象,根据从数据库中取出来的属性配置取出 JSON 中要翻译的文本存入到一个 List 中。实习过程中接触到一个需求,要求实现用户在页面切换语言后,页面展示语言要翻译成对应语言,不需要改变原数据库中内容,刷新页面后内容会变回原语言,当再次选择语言时,再展示翻译后内容。了解了一种翻译的第三方依赖。
2024-08-03 15:45:16
502
原创 Java实习记录 4 ——Vue2 父子组件进行数据传递
了解了一种新的父子组件交互数据的方式,从前仅仅知道使用如 Vuex 以及 Pinia 这类第三方工具进行数据传递。加强了我对组件这一重要概念的理解,将一个大的页面拆分成一个个组件,逐个实现,大大加强了代码之间的解耦性和可读性。实现思路:父组件是一个 table 标签,在 thbody 标签内引入子组件表示一行,每行数据都写在该子组件内。存在问题:要将父组件数据传递到子组件。子组件点击加减按钮时,要将数据和事件通知父组件,父组件再调用对应方法,根据传递来的数据在指定位置加减行。
2024-07-22 13:46:04
298
原创 Java实习记录 3 ——结合Redis解决接口幂等性问题
请求到达后端,首先进行非空校验,然后拼接前缀形成 Redis 的 Key,如果查询不为空则表明其他请求正在修改该课程,直接返回错误。如果为空,则可以进行修改,将该课程 id 存入 Redis,然后判断是否有正在编辑的课程副本,如果存在已经生成的副本,则直接返回该副本 id ,在这个基础上继续修改。如果不存在,则生成一份原课程的副本,将副本id返回给前端。而在企业中,没有直接修改原数据,而是修改复制一份的副本上,在最后确认修改完毕后再将原数据标记为删除状态,修改后数据标记为发布状态。
2024-07-18 22:35:56
479
原创 Java实习记录 2 ——接触需求
在企业中开发与之前学习不一样的是更加注重文档的编写,在最开始接到这个需求后,按照之前的开发习惯,我并没有重视对文档的编写,而是上来就开始尝试进行编码实现,没有文档指导,在开发个人小型项目仍可以顺利完成,但到企业级项目开发中则不同,缺乏文档指导,摸石头过河式的开发方式已经行不通了。根据需求文档和产品设计原型进行页面详细设计,完成了包括设计出该页面需要的那些组件、组件之间的关系、组件所使用到的数据结构和组件所使用到的方法。完成详细设计后,交由组长评审,组长对组件的数据结构和组件之间的方法,给我提供了优化思路。
2024-07-17 18:54:22
256
原创 Java实习记录 1 ——初入职场
运行项目时,发现公司没有具体文档,运行流程基本依靠开发组长口头教授新员工,待我成功运行项目后,我根据自己经历的部署流程编写了一份运行本公司项目的文档。入职第一天,办理各项手续,在行政引导下入座工位,进行开发软件安装和电脑环境搭建,包括 idea、vscode、navicat等等,向公司申请GitHub、VPN以及openVpn的使用权限。每天上下班打卡、编写日报,每周结束后编写周报,总结自己一天、一周的工作内容和进度,让我更加体会到了在企业中工作的规范。开展新员工培训,了解公司项目面向用户和核心业务功能。
2024-07-17 18:53:51
539
原创 Spring的IOC容器初始化流程
IOC容器初始化过程及先准备注册BeanFactory后置处理器,然后启动tomcat并借助BeanFactory完成非懒加载单例Bean的实例化。
2023-12-06 15:32:29
197
1
原创 SpringBoot启动流程
SpringBoot启动,本质是加载各种配置文件信息,然后初始化IOC容器并返回。debug追踪源码发现SpringBoot启动主要分为两方面:new SpringApplication()、与执行run方法。
2023-12-05 20:32:14
163
原创 Spring的 @ControllerAdvice 之 ResponseBodyAdvice对响应结果进行增强
对响应结果进行统一结果处理时,有时会出现有的接口未进行封装,为了解决该问题,可使用@ControllerAdvice 注解对响应结果进行aop编程增强。
2023-10-21 09:27:03
277
原创 vue之使用箭头函数导致表格无法刷新数据
箭头函数本身没有this,但是它在声明时可以捕获其所在上下文的this供自己使用。所以导致this指向不是所需vue对象,表格刷新失败。但在使用监听器监听选择器绑定的value值时使用了箭头函数,请求响应后发现数据更新了但表格为重新渲染,仍为请求之前的数据。在使用初始化方法查询默认表单后,有使用选择器进行条件查询的需求。将箭头函数改为普通函数。
2023-10-19 19:54:07
298
原创 Java中静态模板文件freemaker使用
面对大文本数据展示时,每次查询数据库费时费力,基于这种读多写少的需求,考虑使用freemarker生成静态文件,存入文件系统中,查询时直接展示文件,不必在查询数据库。FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。在resources目录下创建templates,在其中创建post.ftl模板文件。json数据源(这里为了方便手动建立JSON数据源,实际开发中可从数据库中查询)
2023-07-25 09:18:14
486
原创 实际项目开发中MySQL多表查询的两个例子
当前我们知晓的学院地区id为二级地区,而由请求传来的id为一级地区id,故先在地区表中根据一级地区id查询出所有其子二级地区,再在院校表中查询出地区id在子二级地区id中的院校。通过院校名称模糊查询院校信息和所在地区,其中院校表中的area属性与地区表id关联,查询时要综合查询这两个表。从institution表中根据院校名模糊查询,and条件连接在地区表中查出院校地区名称。dto继承institution,并设置地区名称这个独有属性。
2023-04-01 20:31:10
235
原创 从前端到后端全面解析文件上传
2.后端准备(SpringBoot+minio+mysql)2.1解决跨域2.2配置minio与mysqlpom依赖配置文件配置配置minio客户端
2023-03-07 20:36:03
652
1
原创 轻松上手nacos使用
微服务众多,它们的配置信息也非常复杂,为了提高系统的可维护性,微服务的配置信息统一在 Nacos 配置。通用配置可共享使用。配置无误后nacos会根据配置将服务拉至服务列表,并读取nacos中配置与本地配置合并后生效。微服务将自身注册至 Nacos,网关从 Nacos 获取微服务列表。3.在名为bootstrap.yml中配置。但可在nacos中配置优先本地配置。4.在nacos中新建配置。1.创建所用的命名空间。2.在工程中引入依赖。
2023-02-19 09:52:35
1188
原创 跨域问题及解决方案
基于浏览器的同源策略,会对请求进行跨域判断。当协议、域名(或主机ip)、端口号不一致时,则被判断为跨域请求。此时会导致:(1)请求从http://localhost:8081 到 http://localhost:8082 由于端口不同,是跨域。(2)请求从https://localhost:8081 到 http://localhost:8081 由于协议不同,是跨域。
2023-02-04 13:56:00
1393
原创 快速上手使用Elasticsearch实现高亮查询
高版本Elasticsearch的json解析需2.0.1版本,需手动修改jakarta.json版本.
2023-01-19 18:40:48
482
原创 Java学习——springboot整合mysql、redis、mongodb
springboot快速整合mysql,redis,mongodb
2022-07-16 17:48:15
1333
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人