




免费预览已结束,剩余8页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验 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类的地方: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=imf+条形码:+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人【实验结果与分析】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,creatorUserId,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 BeanReader where removeDate is null);if(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.setString(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.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.barcode 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.setState(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;给出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.setPageRecordCount(1);/初始化当前的数是第一页page.setPagesize(20);/以20个记录为一页注意一定要加中括号 不然会冒错 我也不知道为什么如图:有些值在ReaderManager类的searchReaderPage方法中已经赋值了如图:3.对刷新table的方法进行修改readers=(new ReaderManager().searchReaderPage(this.edtKeyword.getText(), rtId,page).getBeanReader();注意需要在:BeanReaderType类中加private PageData page;变量 顺便加下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.getPageRecordCo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 济宁市2024-2025学年九年级上学期语文期中测试试卷
- 集安市2024-2025学年七年级上学期语文月考模拟试卷
- 高速概论基本知识培训课件
- 电表用电安全知识培训课件
- ps操作考试及答案
- mvr考试试题及答案
- 电缆培训知识课件
- G合同工程完工验收鉴定书
- 北京护理编制考试题库及答案
- 高炉安全知识培训课件
- 2025学校食堂食品安全培训
- 生产安全事故应急预案评估报告
- 人教版(2024)七年级下册英语各单元必会重点短语和句型默写版(含答案)
- 人工智能在财务预测中的应用-全面剖析
- 劳动合同标准合同(2025年版)
- 测量不确定度评定第2部分基础知识
- 输液反应应急预案及流程
- T-CDAA 003-2024 大数据应用平台 数据服务运营管理技术要求
- 计算机基础知识完整课件
- 针灸理疗院感风险评估与应对措施
- 铜矿石购销合同范本
评论
0/150
提交评论