多表聯(lián)查,多條件查詢
@Data
public class hangyunxingxi {
private int hangyunid;
private int rid;
private int starid;
private int endid;
private int dateid;
private String hangcheng;
private float price;
private String rname;
private String starname;
private String endname;
private String date;
}
<?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="com.qianfeng.mapper.zlxhangyunxingxiMapper">
<select id="queryHangyunxingxi" resultType="com.qianfeng.pojo.hangyunxingxi">
SELECT hangyunid,hy.rid,r.rname,hy.starid,s.starname,e.endid,e.endname,hy.dateid,sd.date,hangche ng,price FROM hangyunxingxi hy
LEFT JOIN route r ON hy.rid=r.rid
LEFT JOIN star s ON hy.starid=s.starid
LEFT JOIN `end` e ON hy.endid=e.endid
LEFT JOIN stardate sd ON hy.dateid=sd.dateid
</select>
<select id="reachHangyunxingxi" resultType="com.qianfeng.pojo.hangyunxingxi">
SELECT hangyunid,hy.rid,r.rname,hy.starid,s.starname,e.endid,e.endname,hy.dateid,sd.date,hangcheng,price FROM hangyunxingxi hy
LEFT JOIN route r ON hy.rid=r.rid
LEFT JOIN star s ON hy.starid=s.starid
LEFT JOIN `end` e ON hy.endid=e.endid
LEFT JOIN stardate sd ON hy.dateid=sd.dateid
<where>
<if test="rname != null"> <!-- WHERE琳要,會自動忽略前后綴(如:and | or) -->
rname=${rname}
</if>
<if test="starname != null">
AND s.starname=${starname}
</if>
<if test="endname != null">
AND e.endname=${endname}
</if>
<if test="date != null">
AND sd.date=${date}
</if>
</where>
</select>
</mapper>
前臺頁面展示,解決ajax返回值亂碼
使用ajax請求返回前臺的時候會出現(xiàn)亂碼的情況寡具,需要在@RequestMapping中添加produces = "application/json; charset=utf-8"
//查詢并展示所有航運信息
@RequestMapping(value = "hangyunlist",method = RequestMethod.POST , produces = "application/json; charset=utf-8")
@ResponseBody
public String hangyunxingxilist(HttpServletResponse response){
response.setContentType("text/html;charset=utf-8");
List<hangyunxingxi> hangyunxingxis = zlxService.queryHangyunxingxi();
Gson gson2=new Gson();
String str=gson2.toJson(hangyunxingxis);
return str;
}
//更具條件查詢航運信息
@RequestMapping("reach")
public String reachhangyun(String rname,String starname,String endname,String date){ // hy 參數(shù)表示從前臺傳回的所有查詢條件
List<hangyunxingxi> hangyunxingxis = zlxService.reachHangyunxingxi(rname,starname,endname,date);
System.out.println("查詢信息" + hangyunxingxis);
return "";
}
<%-- 航運信息表格--%>
<script>
$(function(){
$.ajax({
url: "hangyunlist",
type:"post",
dataType: "json",
data: {},//傳送請求數(shù)據(jù)
success: function(data) {//登錄成功后返回的數(shù)據(jù)
var list = data;
var $tr=[];
var $td;
for(var i=0; i<list.length; i++) {
$td = $('<tr></tr>');
$('<td class="td1">'+list[i].rname+'</td>').appendTo($td);
$('<td class="td2">'+list[i].starname+'</td>').appendTo($td);
$('<td class="td3">'+list[i].endname+'</td>').appendTo($td);
$('<td class="td4">'+list[i].date+'</td>').appendTo($td);
$('<td class="td5">'+list[i].hangcheng+'</td>').appendTo($td);
$('<td class="td6">'+list[i].price+'</td>').appendTo($td);
$('<td class="td7"><a href="">快速下單</a></td>').appendTo($td);
$tr.push($td);
}
for(var j=0;j<$tr.length;j++) {
$($tr[j]).appendTo($('#hylist'));
}
}
})
})
</script>