J2SE图书管理系统(8)——图书查询功能

1.数据访问层:com.java.dao; 

先在BookDao里面写图书查询的方法:

//图书查询方法
	public ResultSet list(Connection con,Book book) throws Exception{
		//动态结合,用StringBuffer比较好
		StringBuffer sb=new StringBuffer("select * from t_book b,t_bookType bt where b.bookTypeId=bt.id");
		//sql语句查询,当条件有多个时,就用and暂时替代where
		if(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());
		}
		//调用replaceFirst方法将and替换掉
		PreparedStatement pstmt=con.prepareStatement(sb.toString().replaceFirst("and", "where"));
		return pstmt.executeQuery();
	}

 

 2.视图层:com.java.view;

然后在视图层里写图书查询的界面:

将三个框进行修改别名:

图书名称框改为:s_bookName_Txt;

图书作者框改为:s_author_Txt;

图书类别修改为:s_bookType_Jcb;

 

然后在主界面中关联一下图书查询的界面即Book_Manage_InterFrm;

其后,我们写一下界面中图书类别的下拉框方法:

/**
	 * 初始化下拉框
	 * @param type 下拉框类型
	 */
	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("请选择...");
				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();
			}
		}
	}

注意在界面中有两个下拉框,我们加一个参数type来区分是查询的下拉框还是修改的下拉框; 

然后在主方法里调用方法fillBookType;

 这个时候运行,下拉框就被数据内容填充了!

 

接下来写填充表格内容的方法:

/**
	 * 初始化表格数据
	 * @param book
	 */
	@SuppressWarnings({ "rawtypes", "unchecked" })
	private void fillTable(Book book){
		DefaultTableModel dtm=(DefaultTableModel) bookTable.getModel();
		//清空表格
		dtm.setRowCount(0);
		//连接数据库
		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();
			}
		}
	}

这样运行之后表格自然就有了数据库表t_book里面的内容了,如图所示:

 

 

最后写查询方法,这和之前的图书类别查询是一样的:

 

 

最后测试:

可以看到查询成功! 

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值