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);
}
}

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

被折叠的 条评论
为什么被折叠?



