Java入门之模糊查询(在前端页面输入一个字符串,模糊查询五个字段的数据 并且在前端页面渲染出来)

//第一个类 这个类用于调用类和方法和接收参数
public class SearchData extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  String search = request.getParameter(“table_search”);
  if(!search.equals("")) {//判断是否是空串
    FindDao dao = new FindDao();//调用我封装的数据库查询类下面有写
    List list = dao.search(search);//调用我封装的数据库查询类的search方法 里面传递一个参数
    //System.out.println(list);
    Context context = new Context();//实例化thymeleaf容器 这个工具类也是封装完的 这里就不展示了
    context.setVariable(“list”, list);//把list赋值给"list" “list"用于前端渲染
    ThUtils.print(“pages/tables/simple.html”, context, response);//指定要渲染的页面,并且把装数据容器也带过去页面
    //System.out.println(search);
  }else {
    response.sendRedirect(request.getContextPath()+”/HomeServlet");//判断为空串 则返回到主页面
    }
  }
}

public class FindDao {//这个类负责封装数据库的业务逻辑
  public List search(String info){//方法返回一个实例类
    List list = new ArrayList<>();//启用一个集合
    try (Connection conn = DBUtils.getConn()) {//连接数据库 DBUtils已封装为工具类 启动数据库使用
      String sql = “select * from info where user like CONCAT(’%’,?,’%’) or time like CONCAT(’%’,?,’%’) or status like       CONCAT(’%’,?,’%’) or message like CONCAT(’%’,?,’%’)”;//模糊查询数据的方法 这里有个漏洞 无法按ID查询
      PreparedStatement ps = conn.prepareStatement(sql);//调用PreparedStatement 防止sql注入
      ps.setString(1,info);//设置值替代问号
      ps.setString(2,info);
      ps.setString(3,info);
      ps.setString(4,info);
      ResultSet rs = ps.executeQuery();//执行sql语句
      while(rs.next()) {//判断是否能查询到数据
        int id = rs.getInt(“id”);//查到数据则给变量赋值
        String user = rs.getString(“user”);
        String time = rs.getString(“time”);
        String status = rs.getString(“status”);
        String message = rs.getString(“message”);
        Search search = new Search(id,user,time,status,message);//调用实体类,给实体类赋值
        list.add(search);//实体类再赋值给List集合
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
      return list;  //将集合中的结果返回
  }
}

                                                             
ID用户时间状态留言
183John Doe11-7-2014ApprovedBacon ipsum dolor sit amet salami venison chicken flank fatback doner.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值