旅游网FavoriteServiceImpl

本文介绍了一个基于Java的实现,用于查询用户收藏的旅游路线。通过分页技术,系统能够高效地展示用户收藏的路线列表,并支持关键词和价格区间搜索。文章详细展示了如何使用DAO模式进行数据库操作,包括获取收藏路线数量、计算总页数和获取分页记录。

public class FavoriteServiceImpl implements FavoriteService {
private FavoriteDao dao = new FavoriteDaoImpl();
private RouteDao routeDao = new RouteDaoImpl();
@Override
/**
* 因为传入的参数也是分页类,所以直接路线传入分页类中即可,不需要返回值
*/
public void queryRouteByUid(HttpServletRequest request, RoutePageBean routePageBean) {
//获取当前登录用户
User user = (User) request.getSession().getAttribute(“user”);
//根据数据库查询方法,获得用户收藏了几条路线
int recordCount = dao.queryRouteByUidCount(user.getUid());
//通过总路线数和一页有几条路线获取总页数
int pageCount = (int) Math.ceil(recordCount / (double) routePageBean.getPageSize());
//通过当前是第几页和一页的大小获取limit的第一个参数
int pageOffset = (routePageBean.getCurrentPage() - 1) * routePageBean.getPageSize();

    //将三个属性添加到分页路线类中
    routePageBean.setRecordCount(recordCount);
    routePageBean.setPageCount(pageCount);
    routePageBean.setPageOffset(pageOffset);

    //通过数据库方法获取分页记录
    List<Route> routes = dao.queryRouteByUid(user.getUid(), pageOffset, routePageBean.getPageSize());
    routePageBean.setRoutes(routes);
}

@Override
public void queryRank(String word,String priceBegin,String priceEnd,RoutePageBean pageBean) {

    //该方法的两个参数为搜索字和分类,
    //这里用不到两个参数,所以设置为null
    int recordCount = dao.queryRecordCount(word,priceBegin,priceEnd);
    int pageCount = (int)Math.ceil(recordCount / (double) pageBean.getPageSize());
    int pageOffset = (pageBean.getCurrentPage() - 1) * pageBean.getPageSize();

    pageBean.setRecordCount(recordCount);
    pageBean.setPageCount(pageCount);
    pageBean.setPageOffset(pageOffset);

    List<Route> routes = dao.queryRankPage(word,priceBegin,priceEnd,pageOffset,pageBean.getPageSize());
    pageBean.setRoutes(routes);
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值