數(shù)據(jù)庫系統(tǒng)應(yīng)用與開發(fā)--實驗七_第1頁
數(shù)據(jù)庫系統(tǒng)應(yīng)用與開發(fā)--實驗七_第2頁
數(shù)據(jù)庫系統(tǒng)應(yīng)用與開發(fā)--實驗七_第3頁
數(shù)據(jù)庫系統(tǒng)應(yīng)用與開發(fā)--實驗七_第4頁
數(shù)據(jù)庫系統(tǒng)應(yīng)用與開發(fā)--實驗七_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、.實驗 JDBC進階(3)一、相關(guān)知識點1、JDBC基本概念2、主從關(guān)系,分頁查詢二、實驗?zāi)康模豪斫夥猪摬樵兊母拍詈吞幚矸椒ㄈ嶒瀮?nèi)容: 數(shù)據(jù)準備:用上次實驗中的方法,生成1000個讀者和圖書;1、 改造讀者模塊,在提取讀者的同時,提取其未歸還的圖書信息第一步:通過程序增加一些借閱紀錄第二步:改造讀者javabean,使之包括借閱的圖書信息第三步:改造讀者提取方法,同時提取未歸還圖書;第四步:修改圖書借閱ui類并進行測試【實驗結(jié)果與分析】A、 javabean類代碼。private List beanBook;public List getBeanBook() return beanBook

2、;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.returnD

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

4、;result1.add(b);r.setBeanBook(result1);result.add(r);在圖書管理系統(tǒng)借幾本書修改ui類的地方:1private Object tblTitle=讀者證號,姓名,類別,借閱限額,狀態(tài),未歸還圖書信息;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

5、).getBookname()+ 產(chǎn)商id:+t2.get(j).getPubid()+ 價格+t2.get(j).getPrice()+ 狀況:+t2.get(j).getState();tblDatai5=imf;測試:2、 改造讀者管理模塊,將讀者列表頁面改造成分頁查詢方式。第一步: 第二步:自行設(shè)計PageData類,用于存放分頁數(shù)據(jù)第三步:改造ReaderManager類,將其中的查詢讀者方法改造成分頁查詢。第四步:修改ui類,增加上一頁、下一頁按鈕,實現(xiàn)讀者的分頁查詢,要求每頁20人【實驗結(jié)果與分析】A. PageData類代碼。public class PageData priv

6、ate int totalRecordCount;private int pageCount;private int pagesize;private int pageRecordCount;private List beanReader;用set與get創(chuàng)建方法B.給出改造后ReaderManager類的方法代碼。public PageData searchReaderPage(String keyword,int readerTypeId,PageData page)throws BaseException/加一個page類Connection conn=null;try conn=DBU

7、til.getConnection();String sql=select count(*) from BeanReader r,BeanReaderType rt where r.readerTypeId=rt.readerTypeId + and removeDate is null ;/ 這個sql是為了記錄總記錄數(shù)java.sql.PreparedStatement pst=conn.prepareStatement(sql);java.sql.ResultSet rs=pst.executeQuery();if(rs.next()page.setTotalRecordCount(rs

8、.getInt(1);/賦值總記錄數(shù)page.setPageCount(page.getTotalRecordCount()/page.getPagesize();/賦值總頁面數(shù)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,B

9、eanReaderType 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=+r

10、eaderTypeId;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

11、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.

12、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.Pre

13、paredStatement 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.setBea

14、nBook(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類中的修改部分(注:生成表格的方法需做微調(diào))1 . 首先增加2個按鈕 即上一頁,和下

15、一頁需要修改3個地方第一個是:private Button previous = new Button(上一頁);private Button next = new Button(下一頁);如圖:第二個是:toolBar.add(previous);toolBar.add(next);如圖:第三個是:增加監(jiān)聽器this.previous.addActionListener(this);this.next.addActionListener(this);2.對page類的一些值進行復(fù)制page.setPageRecordCount(1);/初始化當前的數(shù)是第一頁page.setPagesize(

16、20);/以20個記錄為一頁注意一定要加中括號 不然會冒錯 我也不知道為什么如圖:有些值在ReaderManager類的searchReaderPage方法中已經(jīng)賦值了如圖: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.getPageRecordCou

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論