J2SE图书管理系统(8)——图书查询功能
1.數(shù)據(jù)訪問(wèn)層:com.java.dao;?
先在BookDao里面寫(xiě)圖書(shū)查詢的方法:
//圖書(shū)查詢方法public ResultSet list(Connection con,Book book) throws Exception{//動(dòng)態(tài)結(jié)合,用StringBuffer比較好StringBuffer sb=new StringBuffer("select * from t_book b,t_bookType bt where b.bookTypeId=bt.id");//sql語(yǔ)句查詢,當(dāng)條件有多個(gè)時(shí),就用and暫時(shí)替代whereif(StringUtil.isNotEmpty(book.getBookName())){sb.append(" and b.bookName like '%"+book.getBookName()+"%'");}if(StringUtil.isNotEmpty(book.getAuthor())){sb.append(" and b.author like '%"+book.getAuthor()+"%'");}if(book.getBookTypeId()!=null && book.getBookTypeId()!=-1){sb.append(" and b.bookTypeId ="+book.getBookTypeId());}//調(diào)用replaceFirst方法將and替換掉PreparedStatement pstmt=con.prepareStatement(sb.toString().replaceFirst("and", "where"));return pstmt.executeQuery();}?
?2.視圖層:com.java.view;
然后在視圖層里寫(xiě)圖書(shū)查詢的界面:
將三個(gè)框進(jìn)行修改別名:
圖書(shū)名稱(chēng)框改為:s_bookName_Txt;
圖書(shū)作者框改為:s_author_Txt;
圖書(shū)類(lèi)別修改為:s_bookType_Jcb;
?
然后在主界面中關(guān)聯(lián)一下圖書(shū)查詢的界面即Book_Manage_InterFrm;
其后,我們寫(xiě)一下界面中圖書(shū)類(lèi)別的下拉框方法:
/*** 初始化下拉框* @param type 下拉框類(lèi)型*/private void fillBookType(String type){Connection con=null;try{con=dbUtil.getCon();ResultSet rs=bookTypeDao.list(con, new BookType());if("search".equals(type)){BookType bookType=new BookType();bookType.setBookTypeName("請(qǐng)選擇...");bookType.setId(-1);this.s_bookType_Jcb.addItem(bookType);}while(rs.next()){BookType bookType=new BookType();bookType.setBookTypeName(rs.getString("bookTypeName"));bookType.setId(rs.getInt("id"));if("search".equals(type)){this.s_bookType_Jcb.addItem(bookType);}else if("modify".equals(type)){}}}catch(Exception e){e.printStackTrace();}finally{try {dbUtil.close(con);} catch (Exception e) {e.printStackTrace();}}}注意在界面中有兩個(gè)下拉框,我們加一個(gè)參數(shù)type來(lái)區(qū)分是查詢的下拉框還是修改的下拉框;?
然后在主方法里調(diào)用方法fillBookType;
?這個(gè)時(shí)候運(yùn)行,下拉框就被數(shù)據(jù)內(nèi)容填充了!
?
接下來(lái)寫(xiě)填充表格內(nèi)容的方法:
/*** 初始化表格數(shù)據(jù)* @param book*/@SuppressWarnings({ "rawtypes", "unchecked" })private void fillTable(Book book){DefaultTableModel dtm=(DefaultTableModel) bookTable.getModel();//清空表格dtm.setRowCount(0);//連接數(shù)據(jù)庫(kù)Connection con=null;try {con=dbUtil.getCon();ResultSet rs=bookDao.list(con, book);while(rs.next()){Vector v=new Vector();v.add(rs.getString("id"));v.add(rs.getString("bookName"));v.add(rs.getString("author"));v.add(rs.getString("sex"));v.add(rs.getFloat("price"));v.add(rs.getString("bookDesc"));v.add(rs.getString("bookTypeName"));dtm.addRow(v);}} catch (Exception e) {e.printStackTrace();}finally{try {dbUtil.close(con);} catch (SQLException e) {e.printStackTrace();}}}這樣運(yùn)行之后表格自然就有了數(shù)據(jù)庫(kù)表t_book里面的內(nèi)容了,如圖所示:
?
?
最后寫(xiě)查詢方法,這和之前的圖書(shū)類(lèi)別查詢是一樣的:
?
?
最后測(cè)試:
可以看到查詢成功!?
?
總結(jié)
以上是生活随笔為你收集整理的J2SE图书管理系统(8)——图书查询功能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 阅读理解(1)|TED演讲_20岁光阴不
- 下一篇: 软件下载站系统源码