简单搜索功能

162 阅读1分钟

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);
    }
}

4.数据库格式

数据库.png

数据库2.png

5.实现结果

json.png