07.增加商品分类查询条件
操作步骤:
1):提供ProductDir的DAO实现.
2):在ProductServelt中,查询出所有的商品分类信息,并提供给list.jsp页面,目的:可以选择商品分类.
3):修改list.jsp增加商品分类查询.
4):修改ProductQueryObject类,增加查询条件:dir_id.
5):修改ProductQueryObject中的getQuery方法.增加dir_id的查询代码
6):修改ProductServelt获取商品分类参数,并设置到ProductQueryObject类中.
多一个查询条件,那么在Query对象中应该多封装一个查询信息,在getQuery方法中,多编写两行代码.
dao
public interface IProductDAO {
List<Product> list();
List<Product> query(ProductQueryObject qo);
}
public interface IProductdirDAO {
List<Productdir> list();
}
impl
public class ProductDAOImpl implements IProductDAO {
public List<Product> list() {
String sql = "SELECT * FROM product";
return JdbcTemplate.query(sql, new ProductResultHandler());
}
public List<Product> query(ProductQueryObject qo) {
String sqlQuery = qo.getQuery();
List<Object> parameters = qo.getParameters();
String sql = "SELECT * FROM product "+sqlQuery;
System.out.println("SQL="+sql);
System.out.println("数组:"+parameters);
return JdbcTemplate.query(sql, new ProductResultHandler(),parameters.toArray());
}
//定义处理商品对象的结果集处理器
class ProductResultHandler implements ResultSetHandler<List<Product>> {
@Override
public List<Product> handle(ResultSet rs) throws SQLException {
List<Product> list = new ArrayList<>();
while (rs.next()) {
Product pro = new Product();
list.add(pro);
pro.setId(rs.getLong("id"));
pro.setProductName(rs.getString("productName"));
pro.setBrand(rs.getString("brand"));
pro.setSupplier(rs.getString("supplier"));
pro.setSalePrice(rs.getBigDecimal("salePrice"));
pro.setCostPrice(rs.getBigDecimal("costPrice"));
pro.setCutoff(rs.getDouble("cutoff"));
pro.setDir_id(rs.getLong("dir_id"));
}
return list;
}
}
}
public class ProductdirDAOImpl implements IProductdirDAO {
public List<Productdir> list() {
String sql = "SELECT * FROM productdir";
return JdbcTemplate.query(sql, new ProductResultHandler());
}
//定义处理商品对象的结果集处理器
class ProductResultHandler implements ResultSetHandler<List<Productdir>> {
@Override
public List<Productdir> handle(ResultSet rs) throws SQLException {
List<Productdir> list = new ArrayLi