昨天将查询列表显示到界面后,今天来进行根据显示的列表来进行条件查询。
在这之前先将,显示在页面的列表去掉,这是为了防止之前查询出来的数据过多导致网页崩溃的问题发生(QB表示自己昨天就崩了,数据库关联查询后还是有几万条的数据,直接GG)。
需求:根据输入框输入的条件进行搜索,在输入框内没有输入 条件的时候,不显示全部的数据列表。
package cn.gsp.controller;
import java.io.InputStream;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import cn.gsp.pojo.SeorderK;
import cn.gsp.service.SeorderService;
import cn.itcast.utils.Page;
@Controller
@RequestMapping("/seorder")
public class SeorderController {
@Autowired
private SeorderService seorderService;
@RequestMapping("/list")
public String list(Model model, SeorderK sk) throws Exception {
if (sk.getFBillNo() != null || sk.getFEntrySelfS0164() != null || sk.getFNumber() != null) {
// 查询数据列表和数据总数
List<SeorderK> resutList = seorderService.getByFBillNo(sk);
Page<SeorderK> page = new Page<SeorderK>();
page.setRows(resutList); // 数据列表
model.addAttribute("page", page);
// 高级查询选中数据回显
model.addAttribute("FBillNo", sk.getFBillNo());
model.addAttribute("FMapNumber", sk.getFMapNumber());
model.addAttribute("FEntrySelfS0164", sk.getFEntrySelfS0164());
}
return "seorder";
}在controller层的调用Service层的方法之前,先做一个查询条件的判断,当三个查询条件全部为空的时候,不进行查询。同时设置了数据的回显,用来避免点击查询后输入框内的数据消失。dao层对应的mapper实现,写自己想要查询的查询条件和查询语句,这样就完成了条件查询。
<?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="cn.gsp.dao.SeorderKDao">
<sql id="seorderwhere">
<where>
<if test="FBillNo!=null and FBillNo!=''">
and t1.FBillNo=#{FBillNo}
</if>
<if test="FMapNumber!=null and FMapNumber!=''">
and t2.FMapNumber=#{FMapNumber}
</if>
<if test="FEntrySelfS0164!=null and FEntrySelfS0164!=''">
and t2.FEntrySelfS0164=#{FEntrySelfS0164}
</if>
</where>
</sql>
<sql id="usecode">
t1.FBillNo,
t2.FMapNumber,
t2.FEntrySelfS0164,
t3.FNumber,
t3.FShortNumber,
t3.FName
</sql>
<select id="getByFBillNo" resultType="cn.gsp.pojo.SeorderK">
SELECT
<include refid="usecode"></include>
FROM
SEOrder t1
inner join SEOrderEntry t2 on t1.FInterID=t2.FInterID
inner join t_ICItemCore t3 on t2.FItemID=t3.FItemID
<include refid="seorderwhere"></include>
order by t1.FBillNo
</select>版权声明:本文为Prisoner_of_time原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。