数据库系统应用与开发--实验七word精品文档6页.doc

上传人:1595****071 文档编号:34065562 上传时间:2022-08-12 格式:DOC 页数:6 大小:141.50KB
返回 下载 相关 举报
数据库系统应用与开发--实验七word精品文档6页.doc_第1页
第1页 / 共6页
数据库系统应用与开发--实验七word精品文档6页.doc_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《数据库系统应用与开发--实验七word精品文档6页.doc》由会员分享,可在线阅读,更多相关《数据库系统应用与开发--实验七word精品文档6页.doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、如有侵权,请联系网站删除,仅供学习与交流数据库系统应用与开发-实验七【精品文档】第 6 页实验 JDBC进阶(3)一、相关知识点1、JDBC基本概念2、主从关系,分页查询二、实验目的:理解分页查询的概念和处理方法三、实验内容: 数据准备:用上次实验中的方法,生成1000个读者和图书;1、 改造读者模块,在提取读者的同时,提取其未归还的图书信息第一步:通过程序增加一些借阅纪录第二步:改造读者javabean,使之包括借阅的图书信息第三步:改造读者提取方法,同时提取未归还图书;第四步:修改图书借阅ui类并进行测试【实验结果与分析】A、 javabean类代码。private List beanBo

2、ok;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

3、)+ 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

4、(rs1.getFloat(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=i

5、mf+条形码:+t2.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人【实验结果与

6、分析】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 BaseExcepti

7、on/加一个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.executeQue

8、ry();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,stopDate,stopUs

9、erId,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 removeDate is null);if

10、(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, %+keyword+%);pst1.s

11、etString(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.getDate(5);r.setCreatorUserId(rs1.

12、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.getString(1)+ and b.bookBarcode=a.b

13、arcode 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.setSt

14、ate(rs2.getString(5);result2.add(b);r.setBeanBook(result2);result1.add(r);page.setBeanReader(result1); catch (SQLException e) e.printStackTrace();throw new DbException(e);finallyif(conn!=null)try conn.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return page;给出

15、ui类中的修改部分(注:生成表格的方法需做微调)1 . 首先增加2个按钮 即上一页,和下一页需要修改3个地方第一个是:private Button previous = new Button(上一页);private Button next = new Button(下一页);如图:第二个是:toolBar.add(previous);toolBar.add(next);如图:第三个是:增加监听器this.previous.addActionListener(this);this.next.addActionListener(this);2.对page类的一些值进行复制page.setPage

16、RecordCount(1);/初始化当前的数是第一页page.setPagesize(20);/以20个记录为一页注意一定要加中括号 不然会冒错 我也不知道为什么如图:有些值在ReaderManager类的searchReaderPage方法中已经赋值了如图:3.对刷新table的方法进行修改readers=(new ReaderManager().searchReaderPage(this.edtKeyword.getText(), rtId,page).getBeanReader();注意需要在:BeanReaderType类中加private PageData page;变量 顺便加下

17、set与get的方法。不然BeanReaderType rt=this.readerTypeMap_name.get(rtname);这句话会冒错说searchReaderPage方法有3个形参而readerType什么只有2个形参不行 我也不是很懂4.最后在actionPerformed方法中加2个if 当按下上一页或下一页按钮时对当前页值进行修改 再刷新tableelse if(e.getSource()=this.previous)if(page.getPageRecordCount()1)page.setPageRecordCount(page.getPageRecordCount()-1);this.reloadTable();else if(e.getSource()=this.next)if(page.getPageRecordCount()page.getTotalRecordCount()page.setPageRecordCount(page.getPageRecordCount()+1);this.reloadTable();如图:测试:第一页:当按下下一页后:当按下上一页后:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁