多条件查询数据库,将查询结果返回页面(ajax/servlet)
package SERVLET;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.taglibs.standard.lang.jstl.AndOperator;
import org.json.JSONException;
import org.json.JSONObject;
import DAO.DesignReportDAO;
public class SearchReportServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
HttpSession session = request.getSession();
String name=request.getParameter("name");
String enterprise_code=request.getParameter("enterprise_code");
String elevator_type=request.getParameter("elevator_type");
String date1=request.getParameter("date1");
String date2=request.getParameter("date2");
DesignReportDAO dao=new DesignReportDAO();
ArrayList<JSONObject> array = null;
try {
//获取数据库数据
array = dao.select_part_reports(name, enterprise_code, elevator_type, date1, date2);
System.out.println(array);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
response.setContentType("text/html;charset=utf-8");
PrintWriter pw = response.getWriter();
pw.print(array.toString());
}
}
package DAO;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import org.json.JSONException;
import org.json.JSONObject;
public class DesignReportDAO extends DataSourceConfig {
private static String SELECT_ALL_Design_Report = "SELECT * FROM design_report_view";
private Connection conn = null;
private Statement statement = null;
//按条件查询设计报告
public ArrayList<JSONObject> select_part_reports(String name, String enterprise_code, String elevator_type, String date1, String date2) throws JSONException
{
if (name == "") {
name = "name";
} else {
name = "'" + name + "'";
} //如果是空集则搜索全部,不是空集则为字符加上''
if (enterprise_code == "") {
enterprise_code = "enterprise_code";
} else {
enterprise_code = "'" + enterprise_code + "'";
} //如果是空集则搜索全部,不是空集则为字符加上''
if (elevator_type == "") {
elevator_type = "elevator_type";
} else {
elevator_type = "'" + elevator_type + "'";
}
if (date1 == "") {
date1 = "'2000-01-01'";
} else {
date1 = "'" + date1 + "'";
}
if (date2 == "") {
date2 = "'2035-01-01'";
} else {
date2 = "'" + date2 + "'";
}
System.out.println(name);
System.out.println(name.getClass().toString());
System.out.println(enterprise_code);
String Search_Design_Report = "select * from design_report_view where design_date >= " + date1 + " and design_date <="
+ date2 + " and enterprise_code=" + enterprise_code + " and elevator_type=" + elevator_type + " and name=" + name;
System.out.println(Search_Design_Report);
try{
conn = super.getConnection();
statement = conn.createStatement();
rst = statement.executeQuery(Search_Design_Report);
ArrayList<JSONObject> array = new ArrayList<JSONObject>();
while(rst.next())
{
JSONObject bean = new JSONObject();
bean.put("elevator_no", rst.getString("elevator_no"));
bean.put("elevator_name", rst.getString("elevator_name"));
bean.put("design_person", rst.getString("design_person"));
bean.put("enterprise_code", rst.getString("enterprise_code"));
bean.put("name", rst.getString("name"));
bean.put("elevator_type", rst.getString("elevator_type"));
bean.put("design_date", rst.getString("design_date"));
bean.put("design_result", rst.getString("design_result"));
array.add(bean);
}
statement.close();
rst.close();
return array;
}catch(SQLException e){
System.out.println("Error occured at DesignReportDAO->select_part_reports()");
return new ArrayList<JSONObject>();
}finally{
try{
conn.close();
}catch(SQLException e){
System.out.println("Error occured at closing connection in DesignReportDAO");
}
}
}
}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>all of the reports</title>
<link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css">
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script src="js/jquery.min.js"> </script>
<script src="js/bootstrap-paginator.js"></script>
<script src="js/bootstrap.min.js"></script>
<link href="css/style.css" rel='stylesheet' type='text/css' />
</head>
<body align=center>
<div>
<table id="searchtable" class="table"
style="width:100%;margin: 0px auto;align:center;">
<tr>
<td align="center">企业名称:<input type="text" id="name" name="name" style="width:30%"></td>
<td align="center">企业代码:<input type="text" id="enterprise_code" name="enterprise_code" style="width:30%"></td>
<td align="center">电梯类型:<select id="elevator_type" name="elevator_type" style="width:40%" >
<option value="">-请选择-</option>
<option value="乘客电梯(住宅)">乘客电梯(住宅)</option>
<option value="自动扶梯">自动扶梯</option>
</select>
</td>
<td align="center">设计时间:<input id="date1" type="text" name="date1" style="width:30%" placeholder="示例: 2019-9-13"> 至 <input
type="text" id="date2" name="date2" style="width:25%" placeholder=" 2019-10-1"></td>
<td align="center"><button id="search_report" onkeyup='searchPORT()' style="height:30px;width:60px;" type="button">搜索</button></td>
</tr>
</table>
</div>
<div style="position:relative;top:50px">
<table id="mytable" class="table" border="1"
style="width:90%;margin: 0px auto;">
<thead>
<tr>
<th colspan="11" style="text-align: center;"><font size="4px"
color="black">设计报告管理</font></th>
</tr>
<tr style="font-size:15px">
<th style="text-align: center;">电梯编号</th>
<th style="text-align: center;">产品名称</th>
<th style="text-align: center;">电梯类型</th>
<th style="text-align: center;">设计单位名称</th>
<th style="text-align: center;">设计单位代码</th>
<th style="text-align: center;">设计人员姓名</th>
<th style="text-align: center;">设计时间</th>
<th style="text-align:center;">附件</th>
</tr>
</thead>
<tbody id="tbody">
</tbody>
</table>
</div>
<script>
$("#search_report").click(function(){
var name=$("#name").val();
var enterprise_code=$("#enterprise_code").val();
var elevator_type=$("#elevator_type").val();
var date1=$("#date1").val();
var date2=$("#date2").val();
$.ajax({
type : 'post',
async : true,
url : 'SearchReportServlet.do',
data : {
"name" :name,
"enterprise_code":enterprise_code,
"elevator_type":elevator_type,
"date1":date1,
"date2":date2
},
dataType : 'json',
success : function(msg) {
console.log(msg);
$("#data").text(data.length);
$("#tbody").empty();
var str="";
for(var j=0;j<msg.length;j++){
str+="<tr><td align='center'>" + msg[j].elevator_no + "</td><td align='center'>" + msg[j].elevator_name
+ "</td><td align='center'>" + msg[j].elevator_type + "</td><td align='center'>" + msg[j].name
+ "</td><td align='center'>" + msg[j].enterprise_code + "</td><td align='center'>" + msg[j].design_person
+ "</td><td align='center'>" + msg[j].design_date + "</td><td align='center'><a href='http://localhost:8080/ZDZX_DT/Report.jsp?zdftno="
+ msg[j].elevator_no + "' target='_blank'>查看 </a></td></tr>";
}
$("#tbody").show().append(str);//插入节点中
},
error : function() {
alert("无法与数据库取得连接!!!2222");
}
});
});
</script>
</body>
</html>
- 最终结果