1.数据访问层:com.java.dao;
在之前建好的BookTypeDao类里面增加一个查询的方法:
//图书类别查询的集合
public ResultSet list(Connection con,BookType bookType) throws Exception{
//动态结合,用StringBuffer比较好
StringBuffer sb=new StringBuffer("select * from t_booktype");
//sql语句查询,当条件有多个时,就用and暂时替代where
if(StringUtil.isNotEmpty(bookType.getBookTypeName())){
sb.append(" and bookTypeName like '%"+bookType.getBookTypeName()+"%'");
}
//调用replaceFirst方法将and替换掉
PreparedStatement pstmt=con.prepareStatement(sb.toString().replaceFirst("and", "where"));
return pstmt.executeQuery();
}
2.视图层:com.java.view;
然后在视图层里面写图书类别管理的界面,我们在view里面新建一个BookType_Manage_InterFrm类:
右键点击view包->new->Other->WindowBuilder->Swing Designer->JInternalFrame类;
建好之后在Designer上添加一些控件:
先将table重命名为bookTypeTable
然后写一个初始化表格的方法:
/**
* 初始化表格
* @param bookType
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
private void fillTable(BookType bookType){
DefaultTableModel dtm=(DefaultTableModel) bookTypeTable.getModel();
//表格清空,设置成0行
dtm.setRowCount(0);
//进行数据库连接
Connection con=null;
try {
dbUtil.getCon();
ResultSet rs=bookTypeDao.list(con, bookType);
//进行数据遍历
while(rs.next()){
//定义集合
Vector v=new Vector();
v.add(rs.getInt("id"));
v.add(rs.getString("bookTypeName"));
v.add(rs.getString("bookTypeDesc"));
dtm.addRow(v);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
//关闭数据库连接
dbUtil.close(con);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
在方法里调用:
再添加事件处理:在MainFrm窗口中 ,
右键图书类别维护->Add event handler->action->actionPerformed;
在系统自动生成的方法里面,添加如下代码:
测试检验:
而我们数据库中t_bookType表中是数据为:
可以看到已经把数据库中表的数据成功地导入出来了!
现在做查询功能:
先添加如上图所示的几个功能控件;
将文本框进行重命名为s_bookTypeName_Txt;
查询功能事件:
右键查询按钮->Add event handler->action->actionPerformed;
系统会自动在Source里面生成对应的方法:
这里我们在actionPerformed()方法里面写一个bookTypeSearchActionPerformed(e)方法,
将实现重置的代码写在这个方法里面,并将方法的定义写在系统自动生成的actionPerformed()方法的外部;
测试环节:
可以看到查询成功!