1 / 65

公交线路查询算法与实现

公交线路查询算法与实现. 上章回顾. 数据实体层 (Model) 的实现 表示层 (Web) 的实现: 线路信息管理页面设计 线路信息管理页面代码 业务逻辑层 (BLL) 的实现 数据操作 -- 存储过程实现 数据访问层 (OracleDAL) 的实现 数据访问工厂层 (DALFactory) 的实现 数据访问接口层 (IDAL) 的实现. 本章目标. 查询算法 : 理解算法思路 了解 oracle 包、游标、临时表、用户函数、存储过程的概念 理解算法的实现 查询实现 : 理解直达线路查询概念,实现方法 理解一次转乘查询概念,实现方法

elie
Download Presentation

公交线路查询算法与实现

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 公交线路查询算法与实现

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

  3. 本章目标 • 查询算法 : • 理解算法思路 • 了解oracle包、游标、临时表、用户函数、存储过程的概念 • 理解算法的实现 • 查询实现 : • 理解直达线路查询概念,实现方法 • 理解一次转乘查询概念,实现方法 • 理解车次查询概念,实现方法 • 理解站点查询概念,实现方法

  4. 查询算法 • 算法思路 • 直达 • 一次换乘

  5. 算法实现 --包 • 包(package)由两部分组成: • 包说明(规范、包头) • 包体(主体) • 函数(function)以及过程(procedure)单独运行与将其放入包(package)中有何不同 • 包的作用

  6. 算法实现 --包 • 包头创建语法格式:

  7. 算法实现 --包 • 包头语法格式说明: • Schema:指定将要创建的包所属用户方案。 • Package_name : 将要创建的包的名称。 • pl/sql_package_spec:变量、常量及数据类型定义;游标定义;函数、过程定义和参数列表返回类型。

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

  9. 算法实现 --包 • 包体创建语法格式:

  10. 算法实现 --包 • 包体语法格式说明 : • Schema:指定将要创建的包所属用户方案。 • pl/sql_package_body: 标、函数、过程的具体定义。

  11. 算法实现 --包 • 包头部分的代码实现:

  12. 算法实现 --包

  13. 算法实现 --包 • 包体部分的代码实现:

  14. 算法实现 --包

  15. 算法实现 --游标 • 为什么用游标? • 什么时候需要显式游标 ?

  16. 算法实现 --游标 • 定义游标: • 开启游标:

  17. 算法实现 --临时表 • 临时表空间(Temporary tablespace )的概念 • 临时表特点

  18. 算法实现 --临时表 • 语法结构 :

  19. 算法实现 --临时表 • 语法结构说明: • --ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行) • --ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。

  20. 算法实现 --临时表 • 其它操作表的语法 :

  21. 算法实现 --临时表 • 创建临时表-存放查询出来的第一次转乘线路 :

  22. 算法实现 --临时表 • 创建临时表-存放查询出来的第二次转乘线路 :

  23. 算法实现 --临时表 • 创建临时表 --存放查询出来的第一次转乘线路集合 :

  24. 算法实现 --临时表 • 创建临时表 --存放查询出来的第二次转乘线路集合 :

  25. 算法实现 --临时表 • 创建临时表 --存放查询出来的转乘线路 :

  26. 算法实现 --用户函数 • 将指定字段的行记录组成字符串的函数,示例:

  27. 算法实现 --存储过程 • 语法结构

  28. 算法实现 --存储过程 • 参数类型 : • in 参数:输入参数,主程序向过程传递参数值。 • out 参数:输出参数,过程向主程序传递参数值。 • in out 参数:双向(输入输出)参数,过程与主程序双向交流数据。

  29. 算法实现 --存储过程 • 存储过程的实现 –线路直达: 代码:

  30. 算法实现 --存储过程 • 存储过程的实现 –一次转乘: 代码:

  31. 查询实现 • 起止站查询—站点筛选

  32. 查询实现--起止站点筛选 • 数据实体层 --BusStation.cs对应代码:

  33. 查询实现--起止站点筛选 • 表示层--SearchStartEndStation.aspx代码 1.所有符合条件的起始站点 :

  34. 查询实现--起止站点筛选 • 表示层--SearchStartEndStation.aspx代码 2.所有符合条件的终止站点:

  35. 查询实现--起止站点筛选 • 表示层--SearchStartEndStation.aspx.cs 1. Page_Load事件代码

  36. 查询实现--起止站点筛选 • 表示层--SearchStartEndStation.aspx.cs 2. 点击查看按钮的Click事件1

  37. 查询实现--起止站点筛选 • 表示层--SearchStartEndStation.aspx.cs 2. 点击查看按钮的Click事件2

  38. 查询实现--起止站点筛选 • 表示层--SearchStartEndStation.aspx.cs 3. 起始站点RadioButtonList的DataBound事件

  39. 查询实现--起止站点筛选 • 表示层--SearchStartEndStation.aspx.cs 4. 终止站点RadioButtonList的DataBound事件

  40. 查询实现--起止站点筛选 • 业务逻辑层--BusStation.cs对应代码1:

  41. 查询实现--起止站点筛选 • 业务逻辑层--BusStation.cs对应代码2:

  42. 查询实现--起止站点筛选 • 接口访问层 --IBusStation.cs对应代码:

  43. 查询实现--起止站点筛选 • 数据访问层 --BusStation.cs对应代码: 1. 获得数据列表1

  44. 查询实现--起止站点筛选 • 数据访问层 --BusStation.cs对应代码: 1. 获得数据列表 2

  45. 查询实现--起止站点筛选 • 数据访问层 --BusStation.cs对应代码: 1. 获得数据列表3

  46. 查询实现--起止站点筛选 • 数据访问层 --BusStation.cs对应代码: 2. 查询单条数据1

  47. 查询实现--起止站点筛选 • 数据访问层 --BusStation.cs对应代码: 2. 查询单条数据2

  48. 查询实现--起止站点筛选 • 数据访问层 --BusStation.cs对应代码: 2. 查询单条数据3

  49. 查询实现--直达线路查询 • 表示层--SearchThrough.aspx代码 1

  50. 查询实现--直达线路查询 • 表示层--SearchThrough.aspx代码2

More Related