Day45(15)-F:\硕士阶段\Java\课程代码\后端\web-ai-code\web-ai-project02\tlias-web-management

news/2025/11/22 23:44:05/文章来源:https://www.cnblogs.com/David0919/p/19258916

分页查询优化

image-20251122100656741

用实现类封装

@GetMapping
public Result page(EmpQueryParam empQueryParam){log.info("分页查询:{}",empQueryParam);PageResult<Emp> pageResult = empService.page(empQueryParam);return Result.success(pageResult);
}
PageResult<Emp> page(EmpQueryParam empQueryParam);
@Overridepublic PageResult<Emp> page(EmpQueryParam empQueryParam) {//1.设置分页参数PageHelper.startPage(empQueryParam.getPage(),empQueryParam.getPageSize());//2.执行查询List<Emp> rows = empMapper.list(empQueryParam);//3.解析结果,封装结果 PageResult//page的父类是ArrayList,ArrayList的父类是List,可以父转子强转;Page<Emp> p = (Page<Emp>) rows;return new PageResult<Emp>(p.getTotal(),p.getResult());
//        //2.执行查询
//        Page<Emp> p = empMapper.list(name,gender,begin,end);
//        //3.解析结果,封装结果 PageResult
//        //page的父类是ArrayList,ArrayList的父类是List,可以父转子强转;
//        return new PageResult<Emp>(p.getTotal(),p.getResult());}
public List<Emp> list(EmpQueryParam empQueryParam);

image-20251122105748052

动态查询

image-20251122112210529

image-20251122113210769

image-20251122115351623

动态SQL修改sql对应的xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itheima.mapper.EmpMapper"><select id="list" resultType="com.itheima.pojo.Emp">select e.*,d.name deptName from emp e left join dept d on e.dept_id = d.id<where><if test="name != null and name != ''">e.name like concat('%',#{name},'%')</if><if test="gender != null">and e.gender = #{gender}</if><if test="begin != null and end != null">and entry_date between #{begin} and #{end}</if></where>order by e.update_time desc</select>
</mapper>

image-20251122120218636

新增员工

涉及两张表

涉及文件上传

image-20251122120525379

image-20251122122329833

/*** 新增员工基本信息* @param emp*/
@Insert("insert into emp(username, name, gender, phone, job, salary, image, entry_date, dept_id, create_time, update_time)\n" +"    VALUES (#{username},#{name},#{gender},#{phone},#{job},#{salary},#{image},#{entryDate},#{deptId},#{creatdateTime},#{updateTime})")
void insert(Emp emp);

image-20251122210227729

主键自增

由于Emp中主键是数据库自动补充,在Emp类中并没有封装Emp的id值,需要先将Emp的id提供主键返回赋值会Emp类的对象中,然后再提供调用Emp类的id属性为EmpExpr类的id来赋值。

@Override
public void save(Emp emp) {//1.保存员工的基本信息emp.setCreateTime(LocalDateTime.now());emp.setUpdateTime(LocalDateTime.now());empMapper.insert(emp);//2.保存员工的基本工作经历信息List<EmpExpr> exprList = emp.getExprList();if (!CollectionUtils.isEmpty(exprList)){//遍历集合,为empId赋值exprList.forEach(empExpr->{empExpr.setEmpId(emp.getId());});empExprMapper.insertBatch(exprList);}
@Options(useGeneratedKeys = true, keyProperty = "id")//获取到生成的主键------主键返回--------由mybatis提供
@Insert("insert into emp(username, name, gender, phone, job, salary, image, entry_date, dept_id, create_time, update_time)" +"    VALUES (#{username},#{name},#{gender},#{phone},#{job},#{salary},#{image},#{entryDate},#{deptId},#{createTime},#{updateTime})")
void insert(Emp emp);
package com.itheima.mapper;import com.itheima.pojo.EmpExpr;
import org.apache.ibatis.annotations.Mapper;import java.util.List;/*** 员工工作经历*/
@Mapper
public interface EmpExprMapper {/*** 批量保存员工的工作经历* @param exprList*/void insertBatch(List<EmpExpr> exprList);
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itheima.mapper.EmpExprMapper">
<!--    批量保存员工工作经历foreach:collection:遍历的集合item:遍历出来的元素的名字separator:每次循环之间的分隔符
--><insert id="insertBatch">insert into emp_expr(emp_id, begin, end, company, job) VALUES<foreach collection="exprList" item="expr" separator=",">(#{expr.empId},#{expr.begin},#{expr.end},#{expr.company},#{expr.job})</foreach></insert>
</mapper>

image-20251122224705505

image-20251122225408302

事务管理

image-20251122225833758

image-20251122231524381

-- 开启事务
start transaction ;
-- 保存员工基本信息 - emp
insert into emp(id,username, name, gender, phone, job, salary, image, entry_date, dept_id, create_time, update_time)values (49,'duanyu','段誉',1,'13356560022',1,6000,'1.jpg','2020-01-01',1,now(),now());-- 批量保存员工工作经历信息 - emp_expr
insert into emp_expr(emp_id, begin, end, company, job)VALUES (49,'2020-01-01','2021-01-01','百度','java开发'),(49,'2021-01-01','2023-01-01','字节','java开发');-- 提交事务
commit;-- 回滚事务
rollback ;

image-20251122231637792

image-20251122232303731

image-20251122232441869

image-20251122232814774

@Transactional//事务管理的注解
@Override
public void save(Emp emp) {//1.保存员工的基本信息emp.setCreateTime(LocalDateTime.now());emp.setUpdateTime(LocalDateTime.now());empMapper.insert(emp);//2.保存员工的基本工作经历信息List<EmpExpr> exprList = emp.getExprList();if (!CollectionUtils.isEmpty(exprList)){//遍历集合,为empId赋值exprList.forEach(empExpr->{empExpr.setEmpId(emp.getId());});empExprMapper.insertBatch(exprList);}
}
spring:application:name: tilas-web-management#数据库的连接信息datasource:url: jdbc:mysql://localhost:3306/tilasdriver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword: 1234
#配置Mybatis的相关配置
mybatis:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl#配置映射,开启了驼峰命名映射的开关map-underscore-to-camel-case: true
#配置事务管理日志级别
logging:level:org.springframework.jdbc.support.JdbcTransactionManager: debug

image-20251122233902923

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/973526.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第三次团队作业:需求改进系统设计

第三次团队作业:需求改进&系统设计 团队名称:洛珈山下 日期:2025-11-22 本周工程目标维度 目标对齐进度 将第二次作业“校正后的安排”细化为可执行任务并分配到人接口落地 给出“已冻结”的 RESTful 接口文档(…

AcWing 908

AcWing 908. 最大不相交区间数量 一、题目描述 给定 ( N ) 个闭区间 ([a_i, b_i]),请你在数轴上选择若干区间,使得选中的区间之间互不相交(包括端点)。输出可选取区间的最大数量。 输入格式 第一行包含整数 ( N ),…

2025最新园林景观品牌品质推荐——至大园林景观,设计、施工、绿化,三维服务筑造精品,

随着城市更新战略的深入推进与人们对美好生活空间需求的提升,园林景观行业迎来高质量发展机遇。在2025年的行业竞争中,上海至大园林景观工程有限公司(简称“至大园林景观”)凭借“设计引领、施工保障、养护托底”的…

2025/11/22 NOIP 模拟赛小记

\(100+100+28+40=268\),T3 好像拿的分过于少了。 不管了,T1、T2 都击杀了,还行。 T1 原题:TopCoder 13061。题意 有 \(n\) 种面值的硬币,第 \(i\) 种面值为 \(a_i\),保证 \(a_1=1\),\(\forall 1\leq i<n,a_i…

icmp for linux

在 Linux 系统中,ping 命令是用于测试网络连通性的一种工具,它使用的是 ICMP(Internet Control Message Protocol) 协议。ping 命令可以用来检查本地主机与远程主机之间的网络连接是否正常。一、ping 命令的基本用…

iceberg sql能查啥

Iceberg SQL 是一个用于查询 Apache Iceberg 表的 SQL 查询引擎。Apache Iceberg 是一个开源项目,它为大数据处理提供了一个表格式和一组处理工具。Iceberg 的主要特点包括支持 ACID 事务、高效的元数据处理、支持复杂…

iceberg sql能实现啥

Apache Iceberg是一个开源表格式,旨在解决大数据分析中的数据存储和管理挑战。它通过提供高性能的表格式、ACID事务支持、模式演化、分区演化等功能,使得数据湖更加灵活和高效。以下是Iceberg SQL的主要功能:高性能…

iceberg sql能做什么

Apache Iceberg是一个开源的数据表格格式和查询引擎,旨在提供更强大的数据管理和分析功能。它支持ACID事务操作、数据版本控制、架构演化、跨平台兼容性、数据分层和分区、兼容现有工具和生态系统等功能。以下是Icebe…

南昌航空大学-软件学院-余思莹-第一次blog作业

目录一、前言二、设计与分析2.1 OOP1-NCHU_单部电梯调度程序2.1.1 题目2.1.2 设计与分析2.2 OOP2-NCHU_单部电梯调度程序2.2.1 题目2.2.2 设计与分析2.3 OOP3-NCHU_单部电梯调度程序2.3.1 题目2.3.2 设计与分析三、踩坑…

java电梯调度三次作业总结

前言: 本次PTA的单部电梯调度程序设计分为三次迭代完成,因此,第一次作业的实现质量对整个项目至关重要,初期最大的挑战在于理解电梯的运行逻辑,本题采用的LOOK算法变种与日常生活中常见的电梯运行方式有所不同,在…

[数据压缩] LZ4 压缩算法

0 序续接: [数据压缩/数据归档] 压缩算法综述 - 博客园/千千寰宇,展开研究 LZ4 压缩算法与压缩格式。1 概述: LZ4 压缩算法LZ4 是一种无损数据压缩算法,专注于极致的压缩和解压速度,同时保持合理的压缩比。它由 Ya…

什么是oracle的for engineered system版本

今天想着看看Oracle最新26ai的版本,奈何官网没有企业版,最新还是21c,于是去edelivery找。只发现了23.5,也行,算很新了,但是发现了个for engineered system版,没有看到企业版。如下:经查,for Engineered Syste…

CAN通信数据帧与远程帧,标准格式与远程格式的区分

礼貌借图,这是B站up主TrojanGeneric发布视频里他自己总结的对比。 在学习概念的时候确实被这里混乱的编码规则给硬控了一下,我的学习资料中关于每一位含义的介绍似乎有些问题。通过与 AI 的交互,感觉自己对这里清晰…

NumPy 从零开始:轻松掌握 Python 科学计算的“魔法”

NumPy 从零开始:轻松掌握 Python 科学计算的“魔法”你是否曾为处理大量数据而烦恼? 用 Python 写循环计算 100 万条数据,结果等了 5 分钟? 用 NumPy,同样的计算 5 秒搞定! 这不是魔法,是 NumPy 的“向量化”魔…

Windows 内网部署共享Neko浏览器

外网电脑 1.下载安装Docker 官网:https://docs.docker.com/desktop/install/windows-install/2.拉取 Neko 的 Chrome 浏览器镜像 docker pull docker.m.daocloud.io/m1k1o/neko:google-chrome3.将拉取的镜像导出为.ta…

iceberg sql怎样运用

Iceberg SQL 是一个用于处理 Apache Iceberg 表的 SQL 查询接口。Apache Iceberg 是一个开源项目,它为大数据处理提供了一个统一的数据格式和数据管理工具。Iceberg 提供了高效的元数据处理能力,支持 ACID 事务,并且…

Premium Multidiag TCS CDP+ V2021: Car Truck Diagnostic Tool with Bluetooth + Free Keygen

The Diagnostic Challenge: Pain Points for Mechanics and Car Owners In the world of automotive repair, time is money—and frustration often arises from outdated tools, limited compatibility, and the str…

iceberg sql怎样使用

Iceberg SQL 是一个用于与 Apache Iceberg 交互的接口。Apache Iceberg 是一个开源项目,提供了一种存储和处理大数据集的方法,特别适用于 Spark、Presto 和 Trino 等大数据处理引擎。以下是使用 Iceberg SQL 的一些基…

iceberg sql怎样优化

Iceberg SQL 优化可以从多个方面进行,以下是一些建议:使用合适的文件格式:Iceberg 支持多种文件格式,如 Parquet、ORC 等。选择合适的文件格式可以提高查询性能。例如,Parquet 格式支持列式存储和压缩,可以有效地…

oracle的free版是什么版本?

许久不见,oracle官网下载现在多了个free版,而且是默认下载选项,经查相关信息,现在的oracle free版就是以前的oracle xe,并非企业版、标准版的开发者版本。 Oracle 23c Free is the replacement for what would ha…