3/23团队作业 最短路径查询

所花时间:3小时

代码量:如下:

博客量:本学期截至目前26

了解到的知识点:最短路径查询

在今天在网上搜索了一下最短路径的代码并且问别的同学,然后我和我的cp完成了这项功能的实现,但是还是不太完整。

部分代码如下:

因为没用sevlet 所以就在jsp文件中写了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="Util.util" %>
<jsp:useBean id="util" class="Util.util"></jsp:useBean>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <h1> 起点与终点途径站点</h1>
 
        </body>
            <body>
                <table border="1" align="center">
                    <tr>
                        <th>1.经历站点个数</th>
                        <th>2.地铁站名</th>
 
                    </tr>
                    <%
                        //计算输入的起点与终点之间的站点数与换乘的最短路径
                        String station_name=request.getParameter("station_name");
                        String stop_station=request.getParameter("stop_station");
                        Connection connection = util.getConnection();
                        PreparedStatement preparedStatement = null;
                        ResultSet rs = null;
                        try{
                            String sql="WITH RECURSIVE transfer (start_station, stop_station, stops, path) AS (\r\n"
                                    + "  SELECT station_name, next_station, 1, CAST(CONCAT(line_name,station_name , '->', line_name,next_station) AS CHAR(1000))\r\n"
                                    + "    FROM bj_subway WHERE station_name = ?\r\n"
                                    + "   UNION ALL\r\n"
                                    + "  SELECT p.start_station, e.next_station, stops + 1, CONCAT(p.path, '->', e.line_name, e.next_station)\r\n"
                                    + "    FROM transfer p\r\n"
                                    + "    JOIN bj_subway e\r\n"
                                    + "      ON p.stop_station = e.station_name AND (INSTR(p.path, e.next_station) = 0)\r\n"
                                    + ")\r\n"
                                    + "SELECT * FROM transfer WHERE stop_station =? limit 2 ";
 
                            preparedStatement = connection.prepareStatement(sql);
                            preparedStatement.setString(1 ,station_name);
                            preparedStatement.setString(2 ,stop_station);
                            rs = preparedStatement.executeQuery();
                            while(rs.next()){
                    %>
                    <tr>
                    <td><%=rs.getString("stops") %></td>
                    <td><%=rs.getString("path") %></td>
                    </tr>
                    <%
                            }
                        }catch (Exception ex){
                            ex.printStackTrace();
 
                        }
                        finally{
                            util.close(rs,preparedStatement,connection);
                        }
                    %>
 
                </table>
            </body>
</html>

  

posted @   南北啊  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
1 2 3
4
点击右上角即可分享
微信分享提示