日期:2014-05-17  浏览次数:20750 次

多条件查询中如何处理时间段查询?
查询

合同签订日期:
合同金额:
项目名称:
起运地:
止运地:
备注:

表单中填入内容即查询内容,空则查询“%”所有。

原设计是日期栏始终有默认值。后使用者觉得查询修改日期很麻烦。而且经常查近几年的情况。

能不能设计个填“合同签订日期”表单项就查询时间段内数据,不填就查询所有时间段的?

求个多条件查询实现类!
------最佳解决方案--------------------
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!

------其他解决方案--------------------
引用:
LZ,是用的什么框架,如果是纯jdbc的话,就用楼上的方法,先在action或者servelt里面得到你的日期,判断是否为空,为空则不加条件,否则加上and 日期='',,

LZ如果是用ibatis之类的话,可以在对应的xml配置里面,先判断传入的参数也是否为空,在进行封装sql!



这个好
------其他解决方案--------------------
目前刚学习到DAO,MVC,有点开始接触框架了。

这个方法真不错。

怎么把分给呢?