
山束高業耽董牧树学院 Shandong Institute of Commerce and Technology 公交线路查询算法与实现
公交线路查询算法与实现

上章回顾 数据实体层(Model)的实现 表示层(Web)的实现: 线路信息管理页面设计 √线路信息管理页面代码 业务逻辑层BLL)的实现 数据操作存储过程实现 数据访问层(OracleDAL)的实现 数据访问工厂层DALFactory)的实现 数据访问接口层(IDAL)的实现 图@国■ home back first prev next last
home back first prev next last 2 上章回顾 • 数据实体层(Model)的实现 • 表示层(Web)的实现: ✓ 线路信息管理页面设计 ✓ 线路信息管理页面代码 • 业务逻辑层(BLL)的实现 • 数据操作--存储过程实现 • 数据访问层(OracleDAL)的实现 • 数据访问工厂层(DALFactory)的实现 • 数据访问接口层(IDAL)的实现

本章目标 查询算法: 理解算法思路 了解oracle包、游标、临时表、用户函数、存 储过程的概念 - 理解算法的实现 查询实现: 一理解直达线路查询概念,实现方法 - 理解一次转乘查询概念,实现方法 理解车次查询概念,实现方法 理解站点查询概念,实现方法 图U网☑ home back first prev next last 3
home back first prev next last 3 本章目标 • 查询算法 : – 理解算法思路 – 了解oracle包、游标、临时表、用户函数、存 储过程的概念 – 理解算法的实现 • 查询实现 : – 理解直达线路查询概念,实现方法 – 理解一次转乘查询概念,实现方法 – 理解车次查询概念,实现方法 – 理解站点查询概念,实现方法

查询算法 ● 算法思路 > 直达 >一次换乘 图U国✉因 home back first prev next last 4
home back first prev next last 4 查询算法 • 算法思路 ➢ 直达 ➢ 一次换乘

算法实现包 包(package)由两部分组成: 包说明(规范、包头) 包体(主体) 函数(function)以及过程(procedure)单独运 行与将其放入包(package)中有何不同 包的作用 圖a国 home back first prev next last
home back first prev next last 5 算法实现 --包 ⚫ 包(package)由两部分组成: – 包说明(规范、包头) – 包体(主体) ⚫ 函数(function)以及过程(procedure)单独运 行与将其放入包(package)中有何不同 ⚫ 包的作用

算法实现包 ● 包头创建语法格式: CARATE OR REPLACE PACKAGE[3 chema,]package_name/*包头名称本/W IS I AS pl/sql package_spec /*定义过程、函数等*/ 图U网☑ home back first prev next last G
home back first prev next last 6 算法实现 --包 ⚫ 包头创建语法格式:

算法实现包 ● 包头语法格式说明: ▣Schema: 指定将要创建的包所属用户方案。 ▣Package name:将要创建的包的名称 ▣pl/sql_package_spec:变量、常量及数据类型定义; 游标定义;函数、过程定义和参数列表返回 类型。 图U国国因 home back first prev next last 7
home back first prev next last 7 算法实现 --包 ⚫ 包头语法格式说明: Schema:指定将要创建的包所属用户方案。 Package_name : 将要创建的包的名称。 pl/sql_package_spec:变量、常量及数据类型定义; 游标定义;函数、过程定义和参数列表返回 类型

算法实现包 在定义包头时,要遵循以下规则: 口包元素的位置可以任意安排。然而, 在声明 部分,对象必须在引用前进行声明。 口包头可以不对任何类型的元素进行说明。例 如,包头可以只带过程和函数说明语句,而 不声明任何异常和类型。 口对过程和函数的任何声明都必须只对子程序 和其参数(如果有的话)进行描述,但不带 任何代码的说明,实现代码则只能在包体中。 它不同于块声明,在块声明中,过程或函数 的代码同时出现在其声明部分。 图@■ home back first prev next last 8
home back first prev next last 8 算法实现 --包 • 在定义包头时,要遵循以下规则: 包元素的位置可以任意安排。然而,在声明 部分,对象必须在引用前进行声明。 包头可以不对任何类型的元素进行说明。例 如,包头可以只带过程和函数说明语句,而 不声明任何异常和类型。 对过程和函数的任何声明都必须只对子程序 和其参数(如果有的话)进行描述,但不带 任何代码的说明,实现代码则只能在包体中。 它不同于块声明,在块声明中,过程或函数 的代码同时出现在其声明部分

算法实现包 包体创建语法格式: CARATE OR REPLACE PACKAGE BODY[3 chema.】package_.name/*包头名称本/N IS I AS pl/sgl package body /*定义过程、函数等*/中 图U网☑ home back first prev next last g
home back first prev next last 9 算法实现 --包 • 包体创建语法格式:

算法实现包 ● 包体语法格式说明: ▣ Schema:指定将要创建的包所属用户方案。 ▣ pl/sql_package_.body:标、函数、过程的具体定 义。 图U国国因 home back first prev next last 10
home back first prev next last 10 算法实现 --包 ⚫ 包体语法格式说明 : Schema:指定将要创建的包所属用户方案。 pl/sql_package_body: 标、函数、过程的具体定 义