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

下载本文档

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

文档简介

实验JDBC进阶一、相关知识点 1、JDBC基本概念 2、主从关系,分页查询二、实验目的: 理解分页查询的概念和处理方法三、实验内容:数据准备:用上次实验中的方法,生成1000个读者和图书;改造读者模块,在提取读者的同时,提取其未归还的图书信息第一步:通过程序增加一些借阅纪录第二步:改造读者javabean,使之包括借阅的图书信息第三步:改造读者提取方法,同时提取未归还图书;第四步:修改图书借阅ui类并进行测试【实验结果与分析】javabean类代码。privateList<BeanBook>beanBook; publicList<BeanBook>getBeanBook(){ returnbeanBook; } publicvoidsetBeanBook(List<BeanBook>beanBook){ this.beanBook=beanBook; }给出改造后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"; 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<BeanBook>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;测试:改造读者管理模块,将读者列表页面改造成分页查询方式。第一步:第二步:自行设计PageData类,用于存放分页数据第三步:改造ReaderManager类,将其中的查询读者方法改造成分页查询。第四步:修改ui类,增加上一页、下一页按钮,实现读者的分页查询,要求每页20人【实验结果与分析】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是为了记录总记录数 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<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"; 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)); 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"; 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(); }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当按下上一页或下一页按钮时对当前页值进行修改再刷新tableelseif(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); this.reloadTable(); }如图:测试:第一页:当按下下一页后:当按下上一页后:

公司印章管理制度一、目的公司印章是公司对内对外行使权力的标志,也是公司名称的法律体现,因此,必须对印章进行规范化、合理化的严格管理,以保证公司各项业务的正常运作,由公司指定专人负责管理。二、印章的种类公章,是按照政府规定,由主管部门批准刻制的代表公司权力的印章。专用章,为方便工作专门刻制的用于某种特定用途的印章,如:合同专用章、财务专用章、业务专用章、仓库签收章等。3、手章(签名章),是以公司法人代表名字刻

温馨提示

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

评论

0/150

提交评论