在service进行相关的代码的逻辑处理之后,需要去mapper中进行相关的sql的执行操作。
@Override public PageInfo<Map<String, Object>> pageList(RequestPage page) { PageHelper.startPage(page.getPageNum(), page.getPageSize()); PageHelper.orderBy(page.getSort()); Map<String, Object> map = new HashMap(); Map<String, Object> queryParam = page.getParam(); if (MapUtils.isNotEmpty(queryParam)) { Iterator<Map.Entry<String, Object>> it = queryParam.entrySet().iterator(); while (it.hasNext()) { Map.Entry<String, Object> entry = it.next(); map.put(entry.getKey(), entry.getValue()); } } Page<Map<String, Object>> pageList = baseMapper.getForPage(map); return new PageInfo(pageList); }
根据baseMapper中相关的对应的相关的同名的方法去寻找相关的getForpage对应的方法,其结果如下:
Page<Map<String, Object>> getForPage(Map<String, Object> map);
去找到了getForPage这个方法,并进行相关的操作。
去mybatis的mapper中去寻找对应的动态sql映射》
<select id="getForPage" resultType="java.util.HashMap"> select t2.id,t1.DisplayName displayName,t2.Code code,t3.Name builder,t2.BuildingDate buildingDate,t2.DeliveryDate deliveryDate,t2.finishDate finishDate,t2.length,t2.manager, length,t4.displayName owner,t5.Name supervisor,t2.Position position,t2.Location location,t2.CreatedOn createdOn from officearea t1 left join pipeengineering t2 on t1.id =t2.Position left join externalOrgUnit t3 on t2.builder = t3.id left join abporganizationunits t4 on t2.owner = t4.id left join externalOrgUnit t5 on t2.supervisor = t5.id where t1.areaType='4' and t1.IsDeleted='0' and t1.Level='0' <if test="keyWord !=null and keyWord !=''"> AND (t1.displayName like concat('%',#{keyWord},'%') or t2.code like concat('%',#{keyWord},'%') or t3.Name like concat('%',#{keyWord},'%') or t4.displayName like concat('%',#{keyWord},'%') or t5.Name like concat('%',#{keyWord},'%')) </if> </select>
至此spring boot的流程结束,与传统的ssm是十分类似的,也是Controller(也就是文中提到的application )到service的过程之后进行,然后根据URL前端对应的参数对应的方法名可以找到对应的接口如下文:
点击pageLIst之后,找到封装pagelist所对应的接口。由图可得知,如下图所示,找到了对应的接口:
拥有一定java基础的同学应该知道,既然拥有了接口,以及接口所对应的方法,则应该去寻找对应的实现类
按照企业的代码书写规范,一般也会放在同一层,如图所示:
那么此时我们应该去对应的接口所对应的接口的实现方法去找到具体的逻辑,还在service这一层,在spring boot主要逻辑也就是书写在这一层。
如图根据接口名去找到对应的实现类以及上文所对应的实现方法如下图所示:
此时回顾之前的接口:
此时可以得知,此时我们是已经到达了逻辑处理单元,分析代码可得知如下:
由此可知pageList对象的数据来向是根据baseMapper这个来进行相关的getforPage的动态sql进行相关的sql调用的。
在之前的spring boot中可以得知,在domain中,主要作用是用来存放相关的实体以及数据访问层,因此从mapper可得知,应该对接数据库,进行相关的数据访问的操作了。
此时思路如下:
应该进行相关的数据对接访问操作。:(思路根据思路进行相关的数据访问操作):进入domain层进行操作。
展开数据访问层,我们可以得知如下操作:
根据数据访问层,去访问数据库的一些数据:
前后台访问数据对比,如下:
-
-
- 前台数据访问的数据如上图所示:
- 使用getForpage进行相关的提供的的动态sql进行查询,结果如下所示:
- 对比两次数据的结果我们可以得知:
- 此次跟踪代码是正确的,因为我之前也是只会ssm,初次接触spring boot,我们可以得知如下,就是spring boot是对mvc的一个封装以及,spring的注解的横向扩展,其次,在使用spring boot中,没有再进行相关的tmcat的部署,由此可知,spring boot对于tomcat进行了一个封装,部署传统的ssm项目更加的简单。
-