数据库系统应用与开发实验七
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验JDBC进阶(3)
一、相关知识点
1、JDBC基本概念
2、主从关系,分页查询
二、实验目的:
理解分页查询的概念和处理方法
三、实验内容:
数据准备:用上次实验中的方法,生成1000个读者和图书;
1、改造读者模块,在提取读者的同时,提取其未归还的图书信息
第一步:通过程序增加一些借阅纪录
第二步:改造读者javabean,使之包括借阅的图书信息
第三步:改造读者提取方法,同时提取未归还图书;
第四步:修改图书借阅ui类并进行测试
【实验结果与分析】
A、javabean类代码。
private List
public List
return beanBook;
}
public void setBeanBook(List
this.beanBook = beanBook;
}
B、给出改造后ReaderManager类的方法代码。
List
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.barcode 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));
b.setState(rs1.getString(5));
result1.add(b);
}
r.setBeanBook(result1);
result.add(r);
在图书管理系统借几本书
修改ui类的地方:
1.private Object tblTitle[]={"读者证号","姓名","类别","借阅限额","状态","未归还图书信息"};
2.tblData =new Object[readers.size()][6];
3.List
String imf="";
if(t2!=null)
{
for(int j=0;j { imf=imf+"条形码:"+t2.get(j).getBarcode()+" 书 名:"+t2.get(j).getBookname()+ " 产商id:"+t2.get(j).getPubid()+" 价格"+t2.get(j).getPrice()+" 状况:"+t2.get(j).getState(); } } tblData[i][5]=imf; 测试: 2、改造读者管理模块,将读者列表页面改造成分页查询方式。 第一步: 第二步:自行设计PageData类,用于存放分页数据 第三步:改造ReaderManager类,将其中的查询读者方法改造成分页查询。 第四步:修改ui类,增加上一页、下一页按钮,实现读者的分页查询,要求每页 20人 【实验结果与分析】 A.PageData类代码。 public class PageData { private int totalRecordCount; private int pageCount; private int pagesize; private int pageRecordCount; private List 用set与get创建方法 B. 给出改造后ReaderManager类的方法代码。 public PageData searchReaderPage(String keyword,int readerTypeId,PageData page)throws BaseException{ //加一个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.executeQuery(); if(rs.next()) page.setTotalRecordCount(rs.getInt(1)); //赋值总记录数 page.setPageCount(page.getTotalRecordCount()/page.getPagesize()); //赋值总页面数 List String sql1="select top "+page.getPagesize()+" readerid,readerName,r.readerTypeId,r.lendBookLimitted,createDate,creatorUserI d,stopDate,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