Tlias智能学习辅助系统项目笔记-员工列表查询(3)

发布时间:2026/6/14 4:15:50
Tlias智能学习辅助系统项目笔记-员工列表查询(3) 目录一、准备工作二、分页查询三、条件查询1.程序优化2.动态SQL优化四、编程随想建议结合黑马程序员的AIjavaWeb学习 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 version1.0 encodingUTF-8 ? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.itheima.mapper.EmpMapper select idlist resultTypecom.itheima.pojo.Emp select e.*, d.name as deptName from emp e left join dept d on e.dept_id d.id where if testname ! null and name ! e.name like concat(%,#{name},%) /if if testgender ! null and e.gender #{gender} /if if testbegin ! 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是分钟