数据库系统应用与开发-实验七资料讲解_第1页
数据库系统应用与开发-实验七资料讲解_第2页
数据库系统应用与开发-实验七资料讲解_第3页
数据库系统应用与开发-实验七资料讲解_第4页
数据库系统应用与开发-实验七资料讲解_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库系统应用与开发--实验七精品文档实验 JDBC进阶(3)一、相关知识点1、JDBC基本概念2、主从关系,分页查询二、实验目的:理解分页查询的概念和处理方法三、实验内容:数据准备:用上次实验中的方法,生成 1000个读者和图书;1、改造读者模块,在提取读者的同时,提取其未归还的图书信息第一步:通过程序增加一些借阅纪录第二步:改造读者 javabean,使之包括借阅的图书信息第三步:改造读者提取方法,同时提取未归还图书;第四步:修改图书借阅 ui类并进行测试【实验结果与分析】A、 javabean类代码。private List<BeanBook> beanBook ;public List<BeanBook>getBeanBook(){return beanBook ;}public void setBeanBook(List<BeanBook>beanBook){this .beanBook =beanBook;}收集于网络,如有侵权请联系管理员删除精品文档B、 给出改造后ReaderManager类的方法代码。List<BeanBook>result1= newArrayList<BeanBook>();Stringsql1= "selecta.barcode,a.bookname,a.pubid,a.price,a.statefrombeanbooka,beanbooklendrecordbwhereb.readerid='" +rs.getString(1)+ "'andb.bookBarcode=a.barcodeandb.returnDateisnull" ;pst1=conn.prepareStatement(sql1);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.private Object tblTitle []={ "读者证号","姓名","类别","借阅限额,"状态","未归还图书信息"};2.tblData =newObject[ readers .size()][6];3.List<BeanBook>t2= readers .get(i).getBeanBook();Stringimf= "";if (t2!= null ){for (int j=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;privateList<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是为了记录总记录数if(rs.next())page.setTotalRecordCount(rs.getInt(1)); //赋值总记录数page.setPageCount(page.getTotalRecordCount()/page.getPagesize()); //赋值总页面数List<BeanReader>result1=newArrayList<BeanReader>();收集于网络,如有侵权请联系管理员删除精品文档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";pst1=conn.prepareStatement(sql1);if(keyword!=null&&!"".equals(keyword)){pst1.setString(1,"%"+keyword+"%");pst1.setString(2,"%"+keyword+"%");}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<BeanBook>result2=newArrayList<BeanBook>();Stringsql2="selecta.barcode,a.bookname,a.pubid,a.price,a.statefrombeanbooka,beanbooklendrecordbwhereb.readerid='"+rs1.getString(1)+"'andb.bookBarcode=a.barcodeandb.returnDateisnull";pst2=conn.prepareStatement(sql2);收集于网络,如有侵权请联系管理员删除精品文档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();}catch(SQLExceptione){TODOAuto-generatedcatchblocke.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当按下上一页或下一页按钮时对当前页值进行修改再刷新tableelseif(e.getSource()==this.previous){if(page.getPageRecordCount()>1){page.setPageRecordCount(page.getPageRecordCount()-1);this.reloadT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论