查询
合同签订日期:
合同金额:
项目名称:
起运地:
止运地:
备注:
表单中填入内容即查询内容,空则查询“%”所有。
原设计是日期栏始终有默认值。后使用者觉得查询修改日期很麻烦。而且经常查近几年的情况。
能不能设计个填“合同签订日期”表单项就查询时间段内数据,不填就查询所有时间段的?
求个多条件查询实现类!
------最佳解决方案--------------------------------------------------------
public static void main(String[] args) {
String a = "a";
String b = "b";
String c = "";
StringBuffer sql = new StringBuffer();
sql.append("select * from test where ");
if ("".equals(a)) {
sql.append("a like %%");
sql.append(" and ");
} else {
sql.append("a=" + a);
sql.append(" and");
}
if ("".equals(b)) {
sql.append(" b like %%");
sql.append(" and ");
} else {
sql.append(" b=" + b);
sql.append(" and ");
}
if ("".equals(c)) {
sql.append("c like %%");
sql.append("");
} else {
sql.append("c=" + c);
sql.append("");
}
System.out.println(sql);
}
------其他解决方案--------------------------------------------------------
LZ,是用的什么框架,如果是纯jdbc的话,就用楼上的方法,先在action或者servelt里面得到你的日期,判断是否为空,为空则不加条件,否则加上and 日期='',,
LZ如果是用ibatis之类的话,可以在对应的xml配置里面,先判断传入的参数也是否为空,在进行封装sql!
------其他解决方案--------------------------------------------------------
这个好
------其他解决方案--------------------------------------------------------
目前刚学习到DAO,MVC,有点开始接触框架了。
这个方法真不错。
怎么把分给呢?