前段时间自己在做项目,在模糊查询的时候遇到一些问题,后面参考了一下别人的做法,再按自己的做法整理了一下。
在这里,模糊查询主要用到的是StringBuilder类追加字符串长度。通过前端界面搜索框输入对应的内容进行模糊查询。
sellLikeBookForm.java
public StringBuilder getSql() {
private int sid;
private String bookname;
private String author;
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getBookname() {
return bookname;
}
public void setBookname(String bookname) {
this.bookname = bookname;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public StringBuilder getSql() {
//给出sql模板, 为了便于后面添加sql语句
StringBuilder sql = new StringBuilder("select * from book where 1=1");
if(StringUtils.isNotBlank(bookname)) {
sql.append(" and bookname like ? ");
}
if(StringUtils.isNotBlank(author)) {
sql.append(" and author like ? ");
}
return sql;
}
public List<Object> getList(){
//给出parameter
List<Object> objs = new ArrayList<>();
if(StringUtils.isNotBlank(bookname)) {
objs.add("%"+bookname+"%");
}
if(StringUtils.isNotBlank(author)) {
objs.add("%"+author+"%");
}
return objs;
}
}
SellShowByPageServlet.java
public class SellShowByPageServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置字符集
request.setCharacterEncoding("UTF-8");
//获取登录标记
int sid = (int) request.getSession().getAttribute("sid");
//业务逻辑层对象
SellBookService sellBookService = new SellBookServiceImpl();
//构造查询的结果所存储的对象
List<SellBook> books = null;
//模糊查询
//获取查询的内容
String bookname = request.getParameter("bookname");
String author = request.getParameter("author");
SellLikeBookForm sellLikeBookForm = new SellLikeBookForm();
sellLikeBookForm.setBookname = bookname;
sellLikeBookForm.setAuthor = author;
StringBuilder sql = sellLikeBookForm.getSql();
List<Object> objs = sellLikeBookForm.getList();
//获取对应销售商的列表信息
sql.append(" and sid = ? ");
objs.add(sid);
//查询图书
books = sellBookService.selectBook(sql, objs);
request.setAttribute("sellLikeBookForm", sellLikeBookForm);
//存入pagebean
request.setAttribute("pageBean", pageBean);
request.getRequestDispatcher("/WEB-INF/selljsp/SellBookInfo.jsp").forward(request, response);
}
}
前端界面举例: