数据库系统应用与开发实验七

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验JDBC进阶(3)

一、相关知识点

1、JDBC基本概念

2、主从关系,分页查询

二、实验目的:

理解分页查询的概念和处理方法

三、实验内容:

数据准备:用上次实验中的方法,生成1000个读者和图书;

1、改造读者模块,在提取读者的同时,提取其未归还的图书信息

第一步:通过程序增加一些借阅纪录

第二步:改造读者javabean,使之包括借阅的图书信息

第三步:改造读者提取方法,同时提取未归还图书;

第四步:修改图书借阅ui类并进行测试

【实验结果与分析】

A、javabean类代码。

private List beanBook;

public List getBeanBook() {

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.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 t2 = readers.get(i).getBeanBook();

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 beanReader;

用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 result1=new ArrayList();

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

相关文档
最新文档