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

wink10562979 2012-12-08 06:25:33
查询

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

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

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

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

求个多条件查询实现类!
...全文
108 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wink10562979 2012-12-09
  • 打赏
  • 举报
回复
目前刚学习到DAO,MVC,有点开始接触框架了。 这个方法真不错。 怎么把分给呢?
je_gs 2012-12-08
  • 打赏
  • 举报
回复
引用 2 楼 xingfuzhuzi1314 的回复:
LZ,是用的什么框架,如果是纯jdbc的话,就用楼上的方法,先在action或者servelt里面得到你的日期,判断是否为空,为空则不加条件,否则加上and 日期='',, LZ如果是用ibatis之类的话,可以在对应的xml配置里面,先判断传入的参数也是否为空,在进行封装sql!
这个好
xingfuzhuzi1314 2012-12-08
  • 打赏
  • 举报
回复
LZ,是用的什么框架,如果是纯jdbc的话,就用楼上的方法,先在action或者servelt里面得到你的日期,判断是否为空,为空则不加条件,否则加上and 日期='',, LZ如果是用ibatis之类的话,可以在对应的xml配置里面,先判断传入的参数也是否为空,在进行封装sql!
  • 打赏
  • 举报
回复
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);

	}


81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧