目录
所有图书显示
1、创建数据表
2、编写实体、数据访问层、业务逻辑层
① 实体:
② 数据访问层:
③业务逻辑层:
3、编写Servlet
4、postman测试
5、编写jsp页面代码
① 编写一个查询所有书籍的jsp页面
② index页面调用
所有图书显示 1、创建数据表注:自定义数据噢!!!
2、编写实体、数据访问层、业务逻辑层 ① 实体:create table tb_book ( bid number primary key,--书籍id bname varchar2(100),--书籍名称 bprice number(5,2),--书籍价格 btype varchar2(100)--书籍类型 )
这个应该没问题的吧,根据数据库的数据编写就好了,不要忘记get、set方法,再来一个无参构造、有参构造就好了(这里就不多描述了)
② 数据访问层:private Integer bid; private String bname; private Float bprice; private String btype;
定义接口,实现接口,编写一个带模糊查询的分页方法和一个带模糊查询记录总条数的方法。
③业务逻辑层:@Override public List
quarryBooks(Integer pageIndex, Integer pageSize, String searchName) { Integer start = (pageIndex-1)*pageSize +1; Integer end = pageIndex*pageSize; Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; String sql = "select b.*from (select a.*,rownum as rid from (select bid,bname,bprice,btype from tb_book where bname like '%"+searchName+"%')a)b where b.rid between "+start+" and "+end+""; Books books =null; List list = new ArrayList (); try { conn = DBHelper.getConn(); ps = conn.prepareStatement(sql); rs = ps.executeQuery(); while(rs.next()) { books = new Books(); books.setBid(rs.getInt("bid")); books.setBname(rs.getString("bname")); books.setBprice(rs.getFloat("bprice")); books.setBtype(rs.getString("btype")); list.add(books); } } catch (Exception e) { e.printStackTrace(); } finally { DBHelper.myClose(conn, ps, rs); } return list; } @Override public Integer getRowTable(String searchName) { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; String sql = "select count(0) from tb_book where bname like '%"+searchName+"%'"; try { conn = DBHelper.getConn(); ps = conn.prepareStatement(sql); rs = ps.executeQuery(); if(rs.next()) { return rs.getInt(1); } } catch (Exception e) { e.printStackTrace(); } finally { DBHelper.myClose(conn, ps, rs); } return null; } 定义接口,实现接口,实例化数据访问层调用方法
3、编写ServletIBooksDao ibd = new BooksDaoImpl(); @Override public List
quarryBooks(Integer pageIndex, Integer pageSize, String searchName){ // TODO Auto-generated method stub return ibd.quarryBooks(pageIndex, pageSize, searchName); } @Override public Integer getRowTable(String searchName) { // TODO Auto-generated method stub return ibd.getRowTable(searchName); } ① 声明servlet
② 获取总页码和总条数(page和rows是固定的)
③ 利用Map集合添加总条数和总数据
4、postman测试protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); response.setContentType("application/json;charset=utf-8"); IBooksBiz ibb = new BooksBizImpl(); Integer pageIndex = 1; String pIndex = request.getParameter("page"); if(pIndex!=null) { pageIndex = Integer.valueOf(pIndex); } Integer pageSize = 7; String pSize = request.getParameter("rows"); if(pSize!=null) { pageSize = Integer.valueOf(pSize); } String searchName = request.getParameter("searchName"); if(searchName == null) { searchName = ""; } Integer total = ibb.getRowTable(searchName); List
list = ibb.quarryBooks(pageIndex, pageSize, searchName); Map maps = new HashMap (); maps.put("total", total); maps.put("rows", list); ObjectMapper mapper = new ObjectMapper(); String reuslt = mapper.writeValueAsString(maps); PrintWriter out = response.getWriter(); out.write(reuslt); out.flush(); out.close(); } } ① 下载postman
② 将postman进行汉化
③ 新建项目,发送请求
④ 先测试servlet,后编写jsp页面
5、编写jsp页面代码 ① 编写一个查询所有书籍的jsp页面(1)创立一个panel面板
(2)创建表格设置id
(3)为表格设置DataGrid事件(包括表明与分页)
(4)为模糊查询设立点击事件,再次调用
注:此界面名字要与昨天的权限管理数据库的数据名一致
② index页面调用查询
这个index界面就是昨天的index.jsp,只是改了这个小小的地方
content:"
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)