版權(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 氫氧化鉀泄漏現(xiàn)場處置方案
- (2025)全國國家版圖知識競賽題庫附答案
- 2025年省考行測地理信息系統(tǒng)應(yīng)用試卷及答案
- 注冊測繪師測繪管理與法律法規(guī)考試真題卷(附答案)(2025年版)
- 2025年衛(wèi)生高級職稱考試(預(yù)防疾控微生物檢驗技術(shù))真題附答案
- 2025年建筑電工建筑特殊工種考試試題題庫及答案
- 護理人員用藥錯誤應(yīng)急預(yù)案演練
- 血透室發(fā)生地震應(yīng)急預(yù)案演練
- 茶道技藝2026年專業(yè)指導(dǎo)
- 2026 年離婚協(xié)議書法定權(quán)威模板
- 2026新疆阿合奇縣公益性崗位(鄉(xiāng)村振興專干)招聘44人筆試備考試題及答案解析
- 2025-2026學(xué)年遼寧省葫蘆島市連山區(qū)八年級(上)期末數(shù)學(xué)試卷(含答案)
- 上海市松江區(qū)2026屆初三一模物理試題(含答案)
- 小學(xué)六年級英語2026年上學(xué)期語法改錯綜合真題
- 2026長治日報社工作人員招聘勞務(wù)派遣人員5人備考題庫完美版
- 護理核心制度內(nèi)容精要
- 湖南省婁底市期末真題重組卷-2025-2026學(xué)年四年級語文上冊(統(tǒng)編版)
- 光伏板清洗施工方案
- 閱讀理解體裁與命題方向(復(fù)習(xí)講義)-2026年春季高考英語(上海高考專用)
- 指南抗菌藥物臨床應(yīng)用指導(dǎo)原則(2025版)
- 2025年華僑生聯(lián)考試題試卷及答案
評論
0/150
提交評論