2024/04/30(2024春季)
学习时长:5小时左右
代码行数:400行左右
博客数量:1篇
今天主要完成极限测试的内容,有关于科技政策查询的一个网页设计,要求可以多条件查询。
后端实现:
controller层
package com.itheima.limitTest.controller; import com.itheima.limitTest.pojo.PageBean; import com.itheima.limitTest.pojo.Policy; import com.itheima.limitTest.pojo.Result; import com.itheima.limitTest.service.PolicyService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @CrossOrigin @Slf4j @RequestMapping("/policy") @RestController public class PolicyController { @Autowired PolicyService policyService; @GetMapping public Result page(@RequestParam(defaultValue ="1") Integer page, @RequestParam(defaultValue ="10") Integer pageSize ,String name,String range,String document,String text) { log.info("在这里"+page+pageSize+name); PageBean pageBean=policyService.page(page,pageSize,name,range,document,text); return Result.success(pageBean); } @GetMapping("/{id}") public Result getById(@PathVariable Integer id) { Policy policy=policyService.getById(id); return Result.success(policy); } }
service层:
package com.itheima.limitTest.service.Impl; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.itheima.limitTest.mapper.PolicyMapper; import com.itheima.limitTest.pojo.PageBean; import com.itheima.limitTest.pojo.Policy; import com.itheima.limitTest.service.PolicyService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Slf4j @Service public class PoilcyServiceImpl implements PolicyService { @Autowired private PolicyMapper policyMapper; @Override public PageBean page(Integer page, Integer pageSize, String name, String range, String document, String text) { PageHelper.startPage(page,pageSize);//分页查询 log.info("这里已经执行"); List<Policy> policyList=policyMapper.list(name,range,document,text); log.info("这里已经执行"); Page<Policy> p=(Page<Policy>) policyList; PageBean pageBean=new PageBean(p.getTotal(),p.getResult()); return pageBean; } @Override public Policy getById(Integer id) { Policy policy=policyMapper.getById(id); return policy; } }
mapper层:
package com.itheima.limitTest.mapper; import com.itheima.limitTest.pojo.Policy; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; @Mapper public interface PolicyMapper { List<Policy> list(@Param("name")String name, @Param("range")String range, @Param("document")String document, @Param("text")String text); @Select("select * from policy where id=#{id}") Policy getById(Integer id); }
对应的xml文件
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.itheima.limitTest.mapper.PolicyMapper"> <select id="list" resultType="com.itheima.limitTest.pojo.Policy"> select id, name, type, category, `range`, document, form, organ, viadata, pubdata, perdata, field, theme, keyword, superior, precursor, succeed, state, pdf, redundancy, `rank`, policykey, newrank, year, newkey, secondtheme, allsum from policy <where> <if test="name!=null and name!=''"> name like concat('%',#{name},'%') </if> <if test="range!=null and range!=''"> and `range` like concat('%',#{range},'%') </if> <if test="document!=null and document!=''"> and document like concat('%',#{document},'%') </if> <if test="text!=null and text!=''"> and `text` like concat('%',#{text},'%') </if> </where> order by viadata desc </select> </mapper>
由于前端页面还有很多的瑕疵,这里就不放出来了。