jsp多条件查询问题,请高手指点迷津!
我做一个信息管理系统,里面用到了多条件组合查询,查询的框和查询之后显示的页面是同一个页面的,也就是说上面输入查询的条件,下面显示所需要的结果,另外还有分页显示等挺多内容的...
我做一个信息管理系统,里面用到了多条件组合查询,查询的框和查询之后显示的页面是同一个页面的,也就是说上面输入查询的条件,下面显示所需要的结果,另外还有分页显示等挺多内容的,查询的条件有8个之多,所以数据都是从数据库里面的一个视图里拿出来的,sql语句也挺麻烦的。我想了一天,一点头绪都没有。不知道该怎么做法。想用jsp+javabean做的。不知道各位高手能否指点一下怎么做法。我希望的是jsp页面与数据层分开的。最好能给一个例子或源码啦!
本人帐号就那么多积分了,没办法啊,分少点 展开
本人帐号就那么多积分了,没办法啊,分少点 展开
3个回答
展开全部
一般是用select * from table where 1=1 and ……
1=1是一个条件为真的值 and后面就加上你要查询的条件,如果是多个就就多and几次
比如这是我以前写的一段
String sql="select * from book where 1=1;
if(bookID!=0)
sql=sql+" and bookID="+bookID;
if(!bookName.equals(""))
sql=sql+ " and bookname like '%"+bookName+"%'";
if(!author.equals(""))
sql=sql+" and author like '%"+author+"%'";
if(bookStatus!=2)
sql = sql +" and status="+bookStatus;
1=1是一个条件为真的值 and后面就加上你要查询的条件,如果是多个就就多and几次
比如这是我以前写的一段
String sql="select * from book where 1=1;
if(bookID!=0)
sql=sql+" and bookID="+bookID;
if(!bookName.equals(""))
sql=sql+ " and bookname like '%"+bookName+"%'";
if(!author.equals(""))
sql=sql+" and author like '%"+author+"%'";
if(bookStatus!=2)
sql = sql +" and status="+bookStatus;
展开全部
封装一个SearchCondition 类,用来传递查询值,要不然写传递的参数,都很复杂。而且不利于维护。
public class SearchCondition{
private String oneCondition;
private String twoCondition;
....
public void setOneCondition(String oneCondition){
this.oneCondition = oneCondition;
}
....
}
在dao查询数据的时候用楼上的方法
StringBuffer sql = new StringBuffer("select * from xxx where 1=1");
if(condition.getOneCondition != null && !"".equals(condition.getOneCondition)){
buffer.append(" and xxxId="+condition.getOneCondition);
}
至少在处理查询条件的时候,我是这样做的。
public class SearchCondition{
private String oneCondition;
private String twoCondition;
....
public void setOneCondition(String oneCondition){
this.oneCondition = oneCondition;
}
....
}
在dao查询数据的时候用楼上的方法
StringBuffer sql = new StringBuffer("select * from xxx where 1=1");
if(condition.getOneCondition != null && !"".equals(condition.getOneCondition)){
buffer.append(" and xxxId="+condition.getOneCondition);
}
至少在处理查询条件的时候,我是这样做的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
会写,说不明白,太多\
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询