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

上传人:b****4 文档编号:2830379 上传时间:2022-11-15 格式:DOCX 页数:15 大小:762.41KB
下载 相关 举报
数据库系统应用与开发实验七.docx_第1页
第1页 / 共15页
数据库系统应用与开发实验七.docx_第2页
第2页 / 共15页
数据库系统应用与开发实验七.docx_第3页
第3页 / 共15页
数据库系统应用与开发实验七.docx_第4页
第4页 / 共15页
数据库系统应用与开发实验七.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

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

《数据库系统应用与开发实验七.docx》由会员分享,可在线阅读,更多相关《数据库系统应用与开发实验七.docx(15页珍藏版)》请在冰豆网上搜索。

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

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

实验JDBC进阶(3)

一、相关知识点

1、JDBC基本概念

2、主从关系,分页查询

二、实验目的:

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

三、实验容:

数据准备:

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

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

第一步:

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

第二步:

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

第三步:

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

第四步:

修改图书借阅ui类并进行测试

【实验结果与分析】

A、javabean类代码。

privateListbeanBook;

publicListgetBeanBook(){

returnbeanBook;

}

publicvoidsetBeanBook(ListbeanBook){

this.beanBook=beanBook;

}

B、给出改造后ReaderManager类的方法代码。

Listresult1=newArrayList();

Stringsql1="selecta.barcode,a.bookname,a.pubid,a.price,a.statefrombeanbooka,beanbooklendrecordbwhereb.readerid='"+rs.getString

(1)+"'andb.bookBarcode=a.barcodeandb.returnDateisnull";

java.sql.PreparedStatementpst1=conn.prepareStatement(sql1);

java.sql.ResultSetrs1=pst1.executeQuery();

while(rs1.next())

{

BeanBookb=newBeanBook();

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.privateObjecttblTitle[]={"读者证号","","类别","借阅限额","状态","未归还图书信息"};

2.tblData=newObject[readers.size()][6];

3.Listt2=readers.get(i).getBeanBook();

Stringimf="";

if(t2!

=null)

{

for(intj=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类代码。

publicclassPageData{

privateinttotalRecordCount;

privateintpageCount;

privateintpagesize;

privateintpageRecordCount;

privateListbeanReader;

用set与get创建方法

B.给出改造后ReaderManager类的方法代码。

publicPageDatasearchReaderPage(Stringkeyword,intreaderTypeId,PageDatapage)throwsBaseException{

//加一个page类

Connectionconn=null;

try{

conn=DBUtil.getConnection();

Stringsql="selectcount(*)fromBeanReaderr,BeanReaderTypertwherer.readerTypeId=rt.readerTypeId"+

"andremoveDateisnull";//这个sql是为了记录总记录数

java.sql.PreparedStatementpst=conn.prepareStatement(sql);

java.sql.ResultSetrs=pst.executeQuery();

if(rs.next())

page.setTotalRecordCount(rs.getInt

(1));//赋值总记录数

page.setPageCount(page.getTotalRecordCount()/page.getPagesize());//赋值总页面数

Listresult1=newArrayList();

Stringsql1="selecttop"+page.getPagesize()+"readerid,readerName,r.readerTypeId,r.lendBookLimitted,createDate,creatorUserId,stopDate,stopUserId,rt.readerTypeName"+

"fromBeanReaderr,BeanReaderTypertwherer.readerTypeId=rt.readerTypeId"+

"andremoveDateisnull";

if(page.getPageRecordCount()!

=1)

sql1+="andreaderidnotin(selecttop"+(page.getPageRecordCount()-1)*(page.getPagesize())+"readeridfromBeanReaderwhereremoveDateisnull)";

if(readerTypeId>0)sql1+="andr.readerTypeId="+readerTypeId;

if(keyword!

=null&&!

"".equals(keyword))

sql1+="and(readeridlike?

orreaderNamelike?

)";

sql1+="orderbyreaderid";

java.sql.PreparedStatementpst1=conn.prepareStatement(sql1);

if(keyword!

=null&&!

"".equals(keyword)){

pst1.setString(1,"%"+keyword+"%");

pst1.setString(2,"%"+keyword+"%");

}

java.sql.ResultSetrs1=pst1.executeQuery();

while(rs1.next()){

BeanReaderr=newBeanReader();

r.setReaderid(rs1.getString

(1));

r.setReaderName(rs1.getString

(2));

r.setReaderTypeId(rs1.getInt(3));

r.setLendBookLimitted(rs1.getInt(4));

r.setCreateDate(rs1.getDate(5));

r.setCreatorUserId(rs1.getString(6));

r.setStopDate(rs1.getDate(7));

r.setStopUserId(rs1.getString(8));

r.setReaderTypeName(rs1.getString(9));

Listresult2=newArrayList();

Stringsql2="selecta.barcode,a.bookname,a.pubid,a.price,a.statefrombeanbooka,beanbooklendrecordbwhereb.readerid='"+rs1.getString

(1)+"'andb.bookBarcode=a.barcodeandb.returnDateisnull";

java.sql.PreparedStatementpst2=conn.prepareStatement(sql2);

java.sql.ResultSetrs2=pst2.executeQuery();

while(rs2.next())

{

BeanBookb=newBeanBook();

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(SQLExceptione){

e.printStackTrace();

thrownewDbException(e);

}

finally{

if(conn!

=null)

try{

conn.close();

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1