1.实现功能
用户通过搜索栏搜索商品,前端判断用户是否输入为空,如果不为空就进行传值,后端通过数据库查询返回json数据。
2.前端代码
$("#comm_form").bind('submit', function(){
var commodity=$("#commodity").val();
var flag=false;
if(commodity!==null && commodity!== undefined && commodity !== ""){
flag=true;
}
return flag;
});
<form id="comm_form" action="/find_comm" method="post" >
<input type="text" class="input_text fl" name="commodity" id="commodity" placeholder="搜索商品">
<input type="submit" class="input_btn fr" name="" value="搜索">
</form>
3.后端代码
Bean:
package bean;
public class Commodity {
private String commodity_name;
private Float price;
private int weight;
public String getCommodity_name() {
return commodity_name;
}
public void setCommodity_name(String commodity_name) {
this.commodity_name = commodity_name;
}
public Float getPrice() {
return price;
}
public void setPrice(Float price) {
this.price = price;
}
public int getWeight() {
return weight;
}
public void setWeight(int weight) {
this.weight = weight;
}
}
Dao:
package dao;
import bean.Commodity;
import com.alibaba.fastjson.JSONObject;
public interface ICommodity {
public JSONObject find(String sql);
}
package dao.impl;
import bean.Commodity;
import dao.ICommodity;
import utils.MysqlUtil;
import java.sql.*;
import java.util.ArrayList;
import com.alibaba.fastjson.JSONObject;
public class CommodityDao implements ICommodity {
@Override
public JSONObject find(String sql) {
Connection con= MysqlUtil.getConnection();
Statement stm= null;
JSONObject json_result_1= new JSONObject();
ArrayList list_result=new ArrayList();
String flag="false";
try {
stm = con.createStatement();
ResultSet rs=stm.executeQuery(sql);
while(rs.next()){
JSONObject json_result_2= new JSONObject();
json_result_2.put("commodity_name", rs.getString("commodity_name"));
json_result_2.put("price",rs.getFloat("price"));
json_result_2.put("weight",rs.getInt("weight"));
list_result.add(json_result_2);
flag="true";
}
} catch (SQLException e) {
e.printStackTrace();
}
json_result_1.put("success",flag);
json_result_1.put("data",list_result);
return json_result_1;
}
}
注:这里使用的是alibaba的json处理库。(maven)
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.44</version>
</dependency>
service:
package service;
import bean.Commodity;
import com.alibaba.fastjson.JSONObject;
public interface ICommodityService {
public JSONObject find(Commodity commodity);
}
package service.impl;
import bean.Commodity;
import com.alibaba.fastjson.JSONObject;
import dao.impl.CommodityDao;
import service.ICommodityService;
public class CommodityService implements ICommodityService {
CommodityDao dao=new CommodityDao();
@Override
public JSONObject find(Commodity commodity) {
String commodity_name=commodity.getCommodity_name();
commodity_name="%"+commodity_name+"%";
String sql=String.format("Select * from commodity WHERE 1=1 and commodity_name like '%s'",commodity_name);
System.out.println(sql);
JSONObject result=dao.find(sql);
return result;
}
}
controller:
package controller;
import bean.Commodity;
import com.alibaba.fastjson.JSONObject;
import service.impl.CommodityService;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/find_comm")
public class Commodity_Find extends HttpServlet {
CommodityService service=new CommodityService();
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=utf-8");
PrintWriter writer=resp.getWriter();
String commodity_name=req.getParameter("commodity");
System.out.println(commodity_name);
Commodity commodity=new Commodity();
commodity.setCommodity_name(commodity_name);
JSONObject result_json=service.find(commodity);
System.out.println(result_json);
String result=result_json.toJSONString();
writer.write(result);
}
}