1、数据库系统应用与开发实验七实验 JDBC进阶(3)一、相关知识点 1、JDBC基本概念 2、主从关系,分页查询二、实验目的: 理解分页查询的概念和处理方法三、实验内容: 数据准备:用上次实验中的方法,生成1000个读者和图书;1、 改造读者模块,在提取读者的同时,提取其未归还的图书信息第一步:通过程序增加一些借阅纪录第二步:改造读者javabean,使之包括借阅的图书信息第三步:改造读者提取方法,同时提取未归还图书;第四步:修改图书借阅ui类并进行测试【实验结果与分析】A、 javabean类代码。private List beanBook; public List getBeanBook()
2、 return beanBook; public void setBeanBook(List beanBook) this.beanBook = beanBook; B、 给出改造后ReaderManager类的方法代码。List result1=new ArrayList(); String sql1=select a.barcode,a.bookname,a.pubid,a.price,a.state from beanbook a ,beanbooklendrecord b where b.readerid=+rs.getString(1)+ and b.bookBarcode=a.ba
3、rcode and b.returnDate is null; java.sql.PreparedStatement pst1=conn.prepareStatement(sql1); java.sql.ResultSet rs1=pst1.executeQuery(); while(rs1.next() BeanBook b=new BeanBook(); b.setBarcode(rs1.getString(1); b.setBookname(rs1.getString(2); b.setPubid(rs1.getString(3); b.setPrice(rs1.getFloat(4);
4、 b.setState(rs1.getString(5); result1.add(b); r.setBeanBook(result1); result.add(r);在图书管理系统借几本书修改ui类的地方:1private Object tblTitle=读者证号,姓名,类别,借阅限额,状态,未归还图书信息;2tblData =new Objectreaders.size()6;3List t2 = readers.get(i).getBeanBook(); String imf=; if(t2!=null) for(int j=0;jt2.size();j+) imf=imf+条形码:+t
5、2.get(j).getBarcode()+ 书名:+t2.get(j).getBookname()+ 产商id:+t2.get(j).getPubid()+ 价格+t2.get(j).getPrice()+ 状况:+t2.get(j).getState(); tblDatai5=imf;测试:2、 改造读者管理模块,将读者列表页面改造成分页查询方式。第一步: 第二步:自行设计PageData类,用于存放分页数据第三步:改造ReaderManager类,将其中的查询读者方法改造成分页查询。第四步:修改ui类,增加上一页、下一页按钮,实现读者的分页查询,要求每页20人【实验结果与分析】A. Pa
6、geData类代码。public class PageData private int totalRecordCount; private int pageCount; private int pagesize; private int pageRecordCount;private List beanReader; 用set与get创建方法B. 给出改造后ReaderManager类的方法代码。public PageData searchReaderPage(String keyword,int readerTypeId,PageData page)throws BaseException
7、/加一个page类 Connection conn=null; try conn=DBUtil.getConnection(); String sql=select count(*) from BeanReader r,BeanReaderType rt where r.readerTypeId=rt.readerTypeId + and removeDate is null ; / 这个sql是为了记录总记录数 java.sql.PreparedStatement pst=conn.prepareStatement(sql); java.sql.ResultSet rs=pst.execut
8、eQuery(); if(rs.next() page.setTotalRecordCount(rs.getInt(1); /赋值总记录数 page.setPageCount(page.getTotalRecordCount()/page.getPagesize(); /赋值总页面数 List result1=new ArrayList(); String sql1=select top +page.getPagesize()+ readerid,readerName,r.readerTypeId,r.lendBookLimitted,createDate,creatorUserId,stop
9、Date,stopUserId,rt.readerTypeName + from BeanReader r,BeanReaderType rt where r.readerTypeId=rt.readerTypeId + and removeDate is null ; if(page.getPageRecordCount()!=1) sql1+= and readerid not in (select top +(page.getPageRecordCount()-1)*(page.getPagesize()+ readerid from BeanReader where removeDat
10、e is null); if(readerTypeId0) sql1+= and r.readerTypeId=+readerTypeId; if(keyword!=null & !.equals(keyword) sql1+= and (readerid like ? or readerName like ?); sql1+= order by readerid; java.sql.PreparedStatement pst1=conn.prepareStatement(sql1); if(keyword!=null & !.equals(keyword) pst1.setString(1,
11、 %+keyword+%); pst1.setString(2, %+keyword+%); java.sql.ResultSet rs1=pst1.executeQuery(); while(rs1.next() BeanReader r=new BeanReader(); r.setReaderid(rs1.getString(1); r.setReaderName(rs1.getString(2); r.setReaderTypeId(rs1.getInt(3); r.setLendBookLimitted(rs1.getInt(4); r.setCreateDate(rs1.getDa
12、te(5); r.setCreatorUserId(rs1.getString(6); r.setStopDate(rs1.getDate(7); r.setStopUserId(rs1.getString(8); r.setReaderTypeName(rs1.getString(9); List result2=new ArrayList(); String sql2=select a.barcode,a.bookname,a.pubid,a.price,a.state from beanbook a ,beanbooklendrecord b where b.readerid=+rs1.
13、getString(1)+ and b.bookBarcode=a.barcode and b.returnDate is null; java.sql.PreparedStatement pst2=conn.prepareStatement(sql2); java.sql.ResultSet rs2=pst2.executeQuery(); while(rs2.next() BeanBook b=new BeanBook(); b.setBarcode(rs2.getString(1); b.setBookname(rs2.getString(2); b.setPubid(rs2.getString(3); b.setPrice(rs2.getFloat(4); b.setState(rs2.getString(5); result2.add(b); r.setBeanBook(result2); result1.add(r); page.setBeanReader(result1); catch (SQLException e) e.printStackTrace(); throw new DbException(e); finally if(conn!=null) try conn.close
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1