数据库系统应用与开发实验七Word文档下载推荐.docx
- 文档编号:18188186
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:15
- 大小:762.58KB
数据库系统应用与开发实验七Word文档下载推荐.docx
《数据库系统应用与开发实验七Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据库系统应用与开发实验七Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
publicList<
getBeanBook(){
returnbeanBook;
}
publicvoidsetBeanBook(List<
beanBook){
this.beanBook=beanBook;
B、给出改造后ReaderManager类的方法代码。
List<
result1=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.List<
t2=readers.get(i).getBeanBook();
Stringimf="
if(t2!
=null)
for(intj=0;
j<
t2.size();
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;
BeanReader>
beanReader;
用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());
//赋值总页面数
List<
Stringsql1="
selecttop"
+page.getPagesize()+"
readerid,readerName,r.readerTypeId,r.lendBookLimitted,createDate,creatorUserId,stopDate,stopUserId,rt.readerTypeName"
fromBeanReaderr,BeanReaderTypertwherer.readerTypeId=rt.readerTypeId"
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))
and(readeridlike?
orreaderNamelike?
)"
sql1+="
orderbyreaderid"
java.sql.PreparedStatementpst1=conn.prepareStatement(sql1);
.equals(keyword)){
pst1.setString(1,"
%"
+keyword+"
);
pst1.setString(2,"
}
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));
List<
result2=newArrayList<
Stringsql2="
+rs1.getString
(1)+"
java.sql.PreparedStatementpst2=conn.prepareStatement(sql2);
java.sql.ResultSetrs2=pst2.executeQuery();
while(rs2.next())
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!
try{
conn.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
returnpage;
给出ui类中的修改部分(注:
生成表格的方法需做微调)
1.首先增加2个按钮即上一页,和下一页
需要修改3个地方
第一个是:
privateButtonprevious=newButton("
上一页"
privateButtonnext=newButton("
下一页"
如图:
第二个是:
toolBar.add(previous);
toolBar.add(next);
第三个是:
增加监听器
this.previous.addActionListener(this);
this.next.addActionListener(this);
2.对page类的一些值进行复制
{
page.setPageRecordCount
(1);
//初始化当前的数是第一页
page.setPagesize(20);
//以20个记录为一页
}
注意一定要加中括号不然会冒错我也不知道为什么
有些值在ReaderManager类的searchReaderPage方法中已经赋值了
3.对刷新table的方法进行修改
readers=(newReaderManager()).searchReaderPage(this.edtKeyword.getText(),rtId,page).getBeanReader();
注意需要在:
BeanReaderType类中加privatePageDatapage;
变量顺便加下set与get的方法。
不然BeanReaderTypert=this.readerTypeMap_name.get(rtname);
这句话会冒错说searchReaderPage方法有3个形参而readerType什么只有2个形参不行我也不是很懂
4.最后在actionPerformed方法中加2个if当按下上一页或下一页按钮时对当前页值进行修改再刷新table
elseif(e.getSource()==this.previous){
if(page.getPageRecordCount()>
1){
page.setPageRecordCount(page.getPageRecordCount()-1);
this.reloadTable();
elseif(e.getSource()==this.next){
if(page.getPageRecordCount()<
page.getTotalRecordCount()){
page.setPageRecordCount(page.getPageRecordCount()+1);
第一页:
当按下下一页后:
当按下上一页后:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 应用 开发 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)