jsp mysql多条件查询_[转载][原创]利用servlet多个条件同时查询数据库信息

com.xaccp.HouseTent.Servlet.do_index_select

1.动态从数据库加载各个条件的下拉列表数据//动态加载街道下拉列表

//动态加载街道下拉列表

List

streets = streetBizImpl.getAllStreet();

Iterator

iterStreets = streets.iterator();

//动态加载户型下拉列表

List

houseTypes = houseTypeBizImpl.getAllHouseType();

Iterator

iterHouseTypes = houseTypes.iterator();

2.通过request.getParameter("XXX")获得用户需要查询的各个条件

//标题

if(request.getParameter("title")!=null){

title=request.getParameter("title");

}

//价钱

if(request.getParameter("price")!=null){

if(request.getParameter("price")!="不限"){

if(request.getParameter("price").equals("1")){

minPrice=1;

maxPrice=999;

}else

if(request.getParameter("price").equals("2")){

minPrice=1000;

maxPrice=2000;

}else

if(request.getParameter("price").equals("3")){

minPrice=2001;

maxPrice=1000000;

}

}

}

//位置

if(request.getParameter("street_id")!=null){

if(request.getParameter("street_id")!="不限"){

street_id=Integer.parseInt(request.getParameter("street_id"));

}

}

//房型

if(request.getParameter("type_id")!=null){

if(request.getParameter("type_id")!="不限"){

houseType_id=Integer.parseInt(request.getParameter("type_id"));

}

}

//面积

if(request.getParameter("floorage")!=null){

if(request.getParameter("floorage")!="不限"){

if(request.getParameter("floorage").equals("1")){

minArea=1;

maxArea=49;

}else

if(request.getParameter("floorage").equals("2")){

minArea=50;

maxArea=100;

}else if(request.getParameter("floorage").equals("3")){

minArea=101;

maxArea=1000000;

}

}

}

3.创建HQL查询语言的参数对象

IndexSelectCondition

indexSelectCondition =

new IndexSelectCondition(

title, street_id, houseType_id, minPrice, maxPrice,

minArea,maxArea);

4.编写分页显示的各个变量

//分页显示 int

pageIndex=1;

int pageSize=5;

long count =

houseBizImpl.getAllHouseCountByPage(indexSelectCondition);

// 注1

long pageCount = count%pageSize==0 ?

count/pageSize : count/pageSize+1;

//捕捉pageIndex(首页,上一页,下一页,最后一页) if(request.getParameter("pageIndex")!=null){

pageIndex=Integer.parseInt(request.getParameter("pageIndex"));

}

//捕捉pageIndex(Go按钮跳转页数) if(request.getParameter("index")!=null){

pageIndex=Integer.parseInt(request.getParameter("index"));

}

5.判断index.jsp页面是查询全部还是按条件查询部分结果

List

houses=null;

if(indexSelectCondition.getTitle()==null&&

indexSelectCondition.getMinPrice()==0&&

indexSelectCondition.getMaxPrice()==0&&

indexSelectCondition.getStreet_id()==0&&

indexSelectCondition.getHouseType_id()==0&&

indexSelectCondition.getMinArea()==0&&

indexSelectCondition.getMaxArea()==0

){

//分页查询所有房屋信息 houses

= houseBizImpl.getAllHouseByPage(pageIndex,pageSize);//注2 }else{

//分页查询用户选中条件下部分房屋信息

houses

=

houseBizImpl.getAllHouseByPage(pageIndex,pageSize,indexSelectCondition);//注3

}

6.request传递的各个对象

//街道列表 request.setAttribute("iterStreets",iterStreets);

//户型列表 request.setAttribute("iterHouseTypes",iterHouseTypes);

//查询到的房屋信息数量的总页数 request.setAttribute("pageCount",

pageCount);

//当前页数 request.setAttribute("pageIndex",

pageIndex);

//查询到的房屋信息 request.setAttribute("houses",houses);

7.转发到index.jsp页面(显示页面)

RequestDispatcher rd =

request.getRequestDispatcher("../index.jsp");

rd.forward(request,

response);

=============================================================================================

index.jsp

action="do_index_select"

method=post> 

  • 房屋信息
  • 标题:

    class=text name=title>

    name=search>

  • 价格
  • name=price>

    selected>不限

    value=1>1000元以下

    1000元-2000元

    value=3>2000元以上

  • 房屋位置
  • name=street_id>

    不限

    varStatus="status">

    value=${street.id}>${street.name}

     
  • 房型
  • name=type_id>

    selected>不限

    varStatus="status">

    value=${houseType.id}>${houseType.name}

  • 面积
  • name=floorage>

    selected>不限

    50

    ㎡以下

    50 ㎡— 100

    100

    ㎡以上

     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值