JDBC多条件组合查询

/**
* 多条件组合查询
* @param criteria
* @return
*/
public List query(Customer criteria) {
try {
/*
* 1. 给出sql模板
* 2. 给出参数
* 3. 调用query方法,使用结果集处理器:BeanListHandler
*/
/*
* 一、 给出sql模板
* 二、 给出参数!
*/
/*
* 1. 给出一个sql语句前半部
*/
StringBuilder sql = new StringBuilder("select * from t_customer where 1=1");
/*
* 2. 判断条件,完成向sql中追加where子句
*/
/*
* 3. 创建一个ArrayList,用来装载参数值
*/
List params = new ArrayList();
String cname = criteria.getCname();
if(cname != null && !cname.trim().isEmpty()) {
sql.append(" and cname like ?");
params.add("%" + cname + "%");
}

String gender = criteria.getGender();
if(gender != null && !gender.trim().isEmpty()) {
sql.append(" and gender=?");
params.add(gender);
}

String cellphone = criteria.getCellphone();
if(cellphone != null && !cellphone.trim().isEmpty()) {
sql.append(" and cellphone like ?");
params.add("%" + cellphone + "%");
}

String email = criteria.getEmail();
if(email != null && !email.trim().isEmpty()) {
sql.append(" and email like ?");
params.add("%" + email + "%");
}

/*
* 三、执行query
*/
return qr.query(sql.toString(), 
new BeanListHandler(Customer.class), 
params.toArray());
} catch(SQLException e) {
throw new RuntimeException(e);
}
}
}

你可能感兴趣的:(Java,编程)