Tlias智能学习辅助系统项目笔记-员工列表查询(3)
2026/6/10 4:00:26 网站建设 项目流程

目录

一、准备工作

二、分页查询

三、条件查询

1.程序优化

2.动态SQL优化

四、编程随想


建议结合黑马程序员的AI+javaWeb学习 93集:视频链接

飞书讲义文档:接口文档

一、准备工作

明确我们要实现的功能是什么?前端给后端传什么参数?后端给前端传什么参数?

二、分页查询

思路:1.明确前端传什么数据,后端传什么数据

2.明确三层架构各自要实现的功能

三层架构代码

使用PageHelper插件进行分页查询优化

Service层三步骤:参数、查询、封装

实现机制和注意事项

自动帮我们生成了count()查询和拼接limit

三、条件查询

优化:当 SQL语句比较复杂时,我们可以配置同包同名的xml映射文件,要配置两个属性nameplace和id,获取nameplace可以点击右键该类类名,选择copy Special ->copy reference(复制特殊引用包名类名);id可以同过点击对应SQL语句的方法,按alt+回车,选gnerate statment就可以自动补全;随后添加对应的SQL语句便可

1.程序优化

当前端的请求参数比较多,或者后期需要添加请求参数,直接在程序中添加形参不便于后期的维护和管理,可以新建一个请求参数类,用一个对象去接受请求参数,会更方便

2.动态SQL优化

(1)当我们的请求参数发生变化,查询条件也会发生变化,SQL语句就不能写死,要能够动态查询;要想构建动态SQL,我们就用<if>条件判断来判断是否查询;

(2)还有一个问题,再用<if>条件判断后,SQL语句会进行拼接,会有多余的and和or造成SQL语法错误,我们就用<where>标签来根据查询条件,自动正常where关键字,和去除多余的and和or

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//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 as 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 e.entry_date between #{begin} and #{end} </if> </where> order by e.update_time desc </select> </mapper>

四、编程随想

1.什么时候需要使用泛型?有什么用?指定将数据往哪个对象封装;泛,广泛的意思,一个集合里数据有多种数据类型,使用泛型不会报错(封装到一个对象里,一个对象有多种数据类型)

2.泛型怎么用?何时用?定义这个类的时候不知道数据类型具体是哪个类型,或者有多个数据类型,比如我们返回给result实体类中的rows数据列表

3.怎么封装返回的数据结果?为什么要新new一个PageResult对象?我们将返回的结果数据封装到一个对象里返回,SpringBoot里的一个依赖spring-boot-starter-web会通过反射获取该实体类的结构,从而获得它的getting 方法,然后得到属性拼接成json字符串返回给前端

4.怎么分析页面原型和需求文档?步骤是什么?要注意什么?分析需要实现什么功能,要用到什么?需要准备什么?数据库表,实体类,三层架构

5.怎么样优化程序才能便于后期的维护和管理?怎么判断哪些代码需要优化?复杂荣誉的代码,需要灵活变动的代码、参数或者方法这些就是需要优化的,比如说灵活变动的参数,或者后期需要更改的就可以配置在application.xml文件中

小结

1.所有增删查改返回的数据类型统一是Result类型

2.写之前想好用什么方法,用什么接受返回的数据

3.当SQL语句比较复杂的时候,可以配置一个同包同名的映射文件,要配置两个属性nameplace和id,获取nameplace可以点击右键该类类名,选择copy Special ->copy reference(复制特殊引用包名类名)

4.@DateTimeFormat 注解是将前端传递的日期格式转换成指定的日期格式,格式是yyyy-MM-dd,不是yyyy-mm-dd,MM是指定月,mm是分钟

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询