个人旅游网(3)——功能详解——旅游路线功能

文章目录

一、旅游路线分类功能

页面效果图:

上述的每个线路分类下有许多的旅游路线,不同的线路分类会区分不同的旅游路线。线路分类作为导航栏的数据,并不会受到用户频繁的增删改查,并且这些路线分类数据需要经常使用到,因此可以将这些数据存储至reids中,这样每次从缓存获取这些数据的速度就会比从数据查询这些数据快得多。

1.1、接口详解

该功能涉及一个 接口,findAll(从category路线分类表中查询出所有路线分类)

1.1.1、findAll

首先定义一个 key 值,根据key值从redis中取出value值,如果redis中取出的value值为空,再从数据库中查询所有线路分类数据,然后再将线路分类数据存入redis中,以后就可以从redis中获取线路分类数据了。

二、路线分类下的旅游路线功能

页面效果图:

该功能涉及到通过路线分类的cid来查询某个路线分类下的所有旅游路线,并且这些旅游路线以每1页3条数据的分页条件展示,同时实现以旅游路线名称的模糊搜索。该功能涉及一个接口,findRouteListByCid

2.2、接口详解

2.2.1、findRouteListByCid

首先设置好分页条件,然后将前端参数cid、rname获取,在数据库中通过cid查询到对应cid下的所有里边有路线,同时以rname作为模糊搜索的条件。

三、点击单条旅游路线查看其详情功能

页面效果图:

该功能主要是根据旅游线路id查询当前该条旅游线路的详情,由于该功能的实现较为复杂,在进行接口详解前先进行具体分析以及sql详情分析。

3.1、接口详解

3.1.1、findRouteListByRid

由于联表查询,因此使用Map接收从数据库查询得到的数据,再使用工具类将此Map转为Route对象。

由于只联表查询了线路分类表、商家表,因此数据库查询得到的数据返回给map时,map中获得的数据并不包含旅游线路图得信息,其实当初在联表表查询时加上旅游线路图表一起查,然后旅游线路图信息也是跟线路分类信息category、商家信息seller一样从map中获取然后设置给route也可以,也可以单独使用sql语句从数据库查询出旅游线路图信息信息,然后再设置给route也可以,我采用的是第2种写法。

四、分页功能

可以自己实现分页功能,也可以调用springboot提供的分页插件。调用springboot提供的现成的分页插件步骤:

4.1、导入依赖

xml 复制代码
 <!--        分页插件-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.1.2</version>
        </dependency>

4.2、配置项的配置

java 复制代码
import com.github.pagehelper.PageInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Properties;

/**
 * 使用该插件进行分页
 */
@Configuration
public class PageHelperConfig {
    @Bean
    public PageInterceptor pageInterceptor() {
        PageInterceptor pageInterceptor = new PageInterceptor();

        //设置参数
        Properties properties = new Properties();
        //reasonable:分页合理化参数,默认值为false, 直接根据参数进行查询。
        //               当该参数设置为 true 时,pageNum<=0 时会查询第一页,
        //               pageNum>pages(超过总数时),会查询最后一页。
        properties.setProperty("reasonable", "true");
        //配置helperDialect属性来指定分页插件使用哪种方言
        properties.setProperty("helperDialect", "mysql");
        pageInterceptor.setProperties(properties);

        return pageInterceptor;
    }
}

4.3、实现分页

在原本的查询语句上,加上一句代码即可实现的分页查询:PageHelper.startPage(分页的条件)

相关推荐
精神病不行计算机不上班15 小时前
[Java Web]在IDEA中完整实现Servlet的示例
java·servlet·tomcat·html·intellij-idea·web
精神病不行计算机不上班17 小时前
[Java Web]Java Servlet基础
java·前端·servlet·html·mvc·web·session
是Yu欸17 小时前
【征文计划】智旅无界:Rokid智能眼镜赋能下一代个性化旅游体验开发指南
人工智能·旅游·个性化·智能眼镜·rokid
sg_knight18 小时前
模块热替换 (HMR):前端开发的“魔法”与提速秘籍
前端·javascript·vue·浏览器·web·模块化·hmr
Miss_Chenzr1 天前
Springboot旅游景区管理系统9fu3n(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·旅游
计算机程序设计小李同学1 天前
基于协同过滤的旅游酒店和订餐系统设计与实现
旅游
亿.62 天前
2025鹏城杯 Web
java·安全·web·ctf·鹏城杯
小肖爱笑不爱笑2 天前
2025/12/16 HTML CSS
java·开发语言·css·html·web
+VX:Fegn08953 天前
计算机毕业设计|基于springboot + vue旅游信息推荐系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计·旅游