尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

Day45(15)-F:\硕士阶段\Java\课程代码\后端\web-ai-code\web-ai-project02\tlias-web-management
📅 发布时间:2026/6/19 3:03:05

分页查询优化

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

相关新闻

  • 第三次团队作业:需求改进系统设计
  • 2025/11/22 NOIP 模拟赛小记
  • icmp for linux

最新新闻

  • 黄金暴涨:虚拟时代的原始信仰
  • 如何用免费在线工具深度分析无人机飞行日志:UAV Log Viewer完全指南
  • 炉石传说终极插件指南:如何用HsMod快速提升游戏体验
  • Digital-IDE:3步在VSCode中搭建专业硬件开发环境
  • 凯乐石携手小沓AI:加速品牌数字化转型,迈向AI驱动新未来
  • 如何免费解锁Cursor Pro功能:3步实现AI编程助手无限使用终极指南

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号