个人旅游网(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(分页的条件)

相关推荐
starstarzz13 天前
解决idea无法正常加载lombok包
java·ide·spring·intellij-idea·springboot·web
码农不惑13 天前
Rust使用tokio(二)HTTPS相关
https·rust·web·openssl
Zik----16 天前
Spring Boot 管理系统项目解读
spring boot·web
qq_124987075316 天前
基于Spring Boot+vue框架的武隆旅游网站设计与实现(源码+论文+调试+安装+售后)
vue.js·spring boot·毕业设计·旅游
甜甜的资料库16 天前
基于ssm智慧乡村旅游服务平台微信小程序源码数据库文档
数据库·微信小程序·旅游
終不似少年遊*16 天前
【软测】接口测试 - 用postman测试软件登录模块
软件测试·测试工具·json·postman·web·可用性测试
kali-Myon16 天前
攻防世界[level7]-Web_php_wrong_nginx_config
前端·nginx·安全·php·web·ctf·攻防世界
從南走到北17 天前
旅游门票预订系统小程序ThinkPHP+UniApp
uni-app·旅游
pixle017 天前
前端 EventSource(SSE)实时通信使用指南(EventSource-polyfill)
前端·web·sse·eventsource·polyfill
Java永无止境18 天前
Web后端基础:数据库
java·数据库·javaweb·web