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

2024-09-03 14:28

本文主要是介绍个人旅游网(3)——功能详解——旅游路线功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、旅游路线分类功能
    • 1.1、接口详解
      • 1.1.1、findAll
  • 二、路线分类下的旅游路线功能
    • 2.2、接口详解
      • 2.2.1、findRouteListByCid
  • 三、点击单条旅游路线查看其详情功能
    • 3.1、接口详解
      • 3.1.1、findRouteListByRid
  • 四、分页功能
    • 4.1、导入依赖
    • 4.2、配置项的配置
    • 4.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、导入依赖

 <!--        分页插件--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.2</version></dependency>

4.2、配置项的配置

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 {@Beanpublic 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(分页的条件)
在这里插入图片描述

这篇关于个人旅游网(3)——功能详解——旅游路线功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1133214

相关文章

基于C++的UDP网络通信系统设计与实现详解

《基于C++的UDP网络通信系统设计与实现详解》在网络编程领域,UDP作为一种无连接的传输层协议,以其高效、低延迟的特性在实时性要求高的应用场景中占据重要地位,下面我们就来看看如何从零开始构建一个完整... 目录前言一、UDP服务器UdpServer.hpp1.1 基本框架设计1.2 初始化函数Init详解

springboot+redis实现订单过期(超时取消)功能的方法详解

《springboot+redis实现订单过期(超时取消)功能的方法详解》在SpringBoot中使用Redis实现订单过期(超时取消)功能,有多种成熟方案,本文为大家整理了几个详细方法,文中的示例代... 目录一、Redis键过期回调方案(推荐)1. 配置Redis监听器2. 监听键过期事件3. Redi

Springboot配置文件相关语法及读取方式详解

《Springboot配置文件相关语法及读取方式详解》本文主要介绍了SpringBoot中的两种配置文件形式,即.properties文件和.yml/.yaml文件,详细讲解了这两种文件的语法和读取方... 目录配置文件的形式语法1、key-value形式2、数组形式读取方式1、通过@value注解2、通过

自定义注解SpringBoot防重复提交AOP方法详解

《自定义注解SpringBoot防重复提交AOP方法详解》该文章描述了一个防止重复提交的流程,通过HttpServletRequest对象获取请求信息,生成唯一标识,使用Redis分布式锁判断请求是否... 目录防重复提交流程引入依赖properties配置自定义注解切面Redis工具类controller

Python容器转换与共有函数举例详解

《Python容器转换与共有函数举例详解》Python容器是Python编程语言中非常基础且重要的概念,它们提供了数据的存储和组织方式,下面:本文主要介绍Python容器转换与共有函数的相关资料,... 目录python容器转换与共有函数详解一、容器类型概览二、容器类型转换1. 基本容器转换2. 高级转换示

Qt实现对Word网页的读取功能

《Qt实现对Word网页的读取功能》文章介绍了几种在Qt中实现Word文档(.docx/.doc)读写功能的方法,包括基于QAxObject的COM接口调用、DOCX模板替换及跨平台解决方案,重点讨论... 目录1. 核心实现方式2. 基于QAxObject的COM接口调用(Windows专用)2.1 环境

HTML5的input标签的`type`属性值详解和代码示例

《HTML5的input标签的`type`属性值详解和代码示例》HTML5的`input`标签提供了多种`type`属性值,用于创建不同类型的输入控件,满足用户输入的多样化需求,从文本输入、密码输入、... 目录一、引言二、文本类输入类型2.1 text2.2 password2.3 textarea(严格

C++ move 的作用详解及陷阱最佳实践

《C++move的作用详解及陷阱最佳实践》文章详细介绍了C++中的`std::move`函数的作用,包括为什么需要它、它的本质、典型使用场景、以及一些常见陷阱和最佳实践,感兴趣的朋友跟随小编一起看... 目录C++ move 的作用详解一、一句话总结二、为什么需要 move?C++98/03 的痛点⚡C++

MySQL中between and的基本用法、范围查询示例详解

《MySQL中betweenand的基本用法、范围查询示例详解》BETWEENAND操作符在MySQL中用于选择在两个值之间的数据,包括边界值,它支持数值和日期类型,示例展示了如何使用BETWEEN... 目录一、between and语法二、使用示例2.1、betwphpeen and数值查询2.2、be

python中的flask_sqlalchemy的使用及示例详解

《python中的flask_sqlalchemy的使用及示例详解》文章主要介绍了在使用SQLAlchemy创建模型实例时,通过元类动态创建实例的方式,并说明了如何在实例化时执行__init__方法,... 目录@orm.reconstructorSQLAlchemy的回滚关联其他模型数据库基本操作将数据添