SSM学习笔记(二)——条件查询

昨天将查询列表显示到界面后,今天来进行根据显示的列表来进行条件查询。

在这之前先将,显示在页面的列表去掉,这是为了防止之前查询出来的数据过多导致网页崩溃的问题发生(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版权协议,转载请附上原文出处链接和本声明。