zoukankan      html  css  js  c++  java
  • 石家庄地铁查询系统开发进度

    开发者:刘世朝    合作伙伴:张小军

      基于石家庄地铁规划图,首先我们从一条线路来实现,我们选取了一号线来实现。在数据库中建立了一个名为subway的表。表内有三个属性,分别为id、name、line。name为站名,line为线路号。其源代码如下所示:

    common.Subway.java

     1 package common;
     2 
     3 public class Subway {
     4     private String id;
     5     private String name;
     6     private String line;
     7     public String getId() {
     8         return id;
     9     }
    10     public void setId(String id) {
    11         this.id=id;
    12     }
    13     public String getName() {
    14         return name;
    15     }
    16     public void setName(String name) {
    17         this.name=name;
    18     }
    19     public String getLine() {
    20         return line;
    21     }
    22     public void setLine(String line) {
    23         this.line=line;
    24     }
    25     public Subway() {}    
    26     public Subway(String id, String name, String line) {
    27         this.id = id;
    28         this.name = name;
    29         this.line=line;    
    30     }
    31     public Subway( String name, String line) {    
    32         this.name = name;
    33         this.line=line;    
    34     }
    35 }

    dao.SubwayDao.java:

    //这里是构建的方法。

      1 package dao;
      2 import java.sql.Connection;
      3 import java.sql.ResultSet;
      4 import java.sql.SQLException;
      5 import java.sql.Statement;
      6 import java.util.ArrayList;
      7 import java.util.List;
      8 import common.Subway;
      9 import helper.SbHelper;
     10 public class SubwayDao {
     11 
     12     /*
     13      * 搜索一号线的所有路线
     14      */
     15         public List<Subway> subway(String name, String line) {
     16             String sql = "select * from subway order by id ASC";
     17             List<Subway> list = new ArrayList<>();
     18             Connection conn = SbHelper.getConn();
     19             Statement state = null;
     20             ResultSet rs = null;
     21 
     22             try {
     23                 state = conn.createStatement();
     24                 rs = state.executeQuery(sql);
     25                 Subway bean = null;
     26                 while (rs.next()) {
     27                     String id = rs.getString("id");
     28                     String name1 = rs.getString("name");
     29                     String line1 = rs.getString("line");
     30                     bean = new Subway(id, name1,line1);
     31                     list.add(bean);
     32                 }
     33             } catch (SQLException e) {
     34                 e.printStackTrace();
     35             } finally {
     36                 SbHelper.close(rs, state, conn);
     37             }
     38             
     39             return list;
     40         }
     41         /*
     42          * 根据站台名获取该站台的id
     43          */
     44         public String id(String name)
     45         {
     46             String sql="select id from subway where name = '"+name+"'";
     47             Connection conn = SbHelper.getConn();
     48             Statement state = null;
     49             String id=null;
     50             ResultSet rs = null;
     51             try
     52             {
     53                 state=conn.createStatement();
     54                 rs = state.executeQuery(sql);
     55                 while(rs.next())
     56                 {
     57                      id=rs.getString("id");
     58                 }
     59             }catch (SQLException e) {
     60                 e.printStackTrace();
     61             } finally {
     62                 SbHelper.close(rs, state, conn);
     63             }
     64             return id;
     65             
     66         }
     67         /*
     68          * 根据站台名获取该站台属于几号线路
     69          */
     70         public String line(String name)
     71         {
     72             String sql="select line from subway where name = '"+name+"'";
     73             Connection conn = SbHelper.getConn();
     74             Statement state = null;
     75             String line=null;
     76 
     77             ResultSet rs = null;
     78             try
     79             {
     80                 state=conn.createStatement();
     81                 rs = state.executeQuery(sql);
     82                 while(rs.next())
     83                 {
     84                      line=rs.getString("line");
     85                      line+="号线";
     86                 }
     87             }catch (SQLException e) {
     88                 e.printStackTrace();
     89             } finally {
     90                 SbHelper.close(rs, state, conn);
     91             }
     92             return line;
     93             
     94         }
     95         /*
     96          * 根据获取的id值搜索出其中间的站台升序
     97          */
     98         public String station1(int id1,int id2)
     99         {
    100             String sql="select name from subway where id between '"+id1+"' and '"+id2+"' order by id ASC" ;
    101             Connection conn = SbHelper.getConn();
    102             Statement state = null;
    103             ResultSet rs = null;
    104             String route = "";
    105             try
    106             {
    107                 state=conn.createStatement();
    108                 rs = state.executeQuery(sql);
    109                 if(rs.next())
    110                     route=rs.getString("name");
    111                 while(rs.next())
    112                 {
    113                     String name=rs.getString("name");
    114                     route+="->"+name;
    115                 }
    116             }catch (SQLException e) {
    117                 e.printStackTrace();
    118             } finally {
    119                 SbHelper.close(rs, state, conn);
    120             }
    121             return route;
    122         }
    123         /*
    124          * 根据获取的id值搜索出其中间的站台降序
    125          */
    126         public String station2(int id1,int id2)
    127         {
    128             String sql="select name from subaway where id between '"+id1+"' and '"+id2+"' order by id DESC" ;
    129             Connection conn = SbHelper.getConn();
    130             Statement state = null;
    131             ResultSet rs = null;
    132             String route = "";
    133             try
    134             {
    135                 state=conn.createStatement();
    136                 rs = state.executeQuery(sql);
    137                 if(rs.next())
    138                     route=rs.getString("name");
    139                 while(rs.next())
    140                 {
    141                     String name=rs.getString("name");
    142                     route+="->"+name;
    143                 }
    144             }catch (SQLException e) {
    145                 e.printStackTrace();
    146             } finally {
    147                 SbHelper.close(rs, state, conn);
    148             }
    149             return route;
    150         }
    151 }

    helper.SbHleper.java:

     1 package helper;
     2 
     3 import java.sql.Connection;
     4 import java.sql.DriverManager;
     5 import java.sql.ResultSet;
     6 import java.sql.SQLException;
     7 import java.sql.Statement;
     8 
     9 public class SbHelper {
    10     public static String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
    11     public static String  dbURL="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=java";
    12     public static  String userName="sa";
    13     public static String userPwd="995893";
    14     
    15     public static Connection getConn () {
    16         Connection conn = null;
    17         
    18         try {
    19             Class.forName(driverName);;//加载驱动
    20             conn = DriverManager.getConnection(dbURL, dbURL, userPwd);
    21             
    22         } catch (Exception e) {
    23             e.printStackTrace();
    24         }
    25         
    26         return conn;
    27     }
    28     
    29     /**
    30      * 关闭连接
    31      * @param state
    32      * @param conn
    33      */
    34     public static void close (Statement state, Connection conn) {
    35         if (state != null) {
    36             try {
    37                 state.close();
    38             } catch (SQLException e) {
    39                 e.printStackTrace();
    40             }
    41         }
    42         
    43         if (conn != null) {
    44             try {
    45                 conn.close();
    46             } catch (SQLException e) {
    47                 e.printStackTrace();
    48             }
    49         }
    50     }
    51     
    52     public static void close (ResultSet rs, Statement state, Connection conn) {
    53         if (rs != null) {
    54             try {
    55                 rs.close();
    56             } catch (SQLException e) {
    57                 e.printStackTrace();
    58             }
    59         }
    60         
    61         if (state != null) {
    62             try {
    63                 state.close();
    64             } catch (SQLException e) {
    65                 e.printStackTrace();
    66             }
    67         }
    68         
    69         if (conn != null) {
    70             try {
    71                 conn.close();
    72             } catch (SQLException e) {
    73                 e.printStackTrace();
    74             }
    75         }
    76     }
    77 
    78 }

     servlet.SubwayServlet.java

     1 package servlet;
     2 import java.io.IOException;
     3 import java.util.List;
     4 import javax.servlet.ServletException;
     5 import javax.servlet.http.HttpServlet;
     6 import javax.servlet.http.HttpServletRequest;
     7 import javax.servlet.http.HttpServletResponse;
     8 
     9 
    10 import common.Subway;
    11 import dao.SubwayDao;
    12 public class SubwayServlet extends HttpServlet {
    13    private static final long serialVersionUID = 1L;
    14     
    15     SubwayDao dao=new SubwayDao();
    16     
    17     protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
    18     {
    19         req.setCharacterEncoding("utf-8");
    20         String method = req.getParameter("method");
    21         if ("one_line".equals(method)) 
    22         {
    23             one_line(req, resp);
    24         }else if("no_transfer1".equals(method)) 
    25         {
    26             no_transfer1(req, resp);
    27         }
    28     }
    29     /*
    30      * 搜索一号线的所有路线
    31      */
    32     private void one_line(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
    33         req.setCharacterEncoding("utf-8");
    34         String line = req.getParameter("line");
    35         String name = req.getParameter("name");
    36         List<Subway> ones = dao.subway(name,line);
    37         req.setAttribute("ones", ones);
    38         req.getRequestDispatcher("one_line_searchlist.jsp").forward(req,resp);
    39     }
    40     /*
    41      * 根据站台名查询出其中间站台
    42      */
    43     private void no_transfer1(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
    44         req.setCharacterEncoding("utf-8");
    45         
    46         String name= req.getParameter("name");      //从网页获取输入的站台
    47         int id1 = Integer.parseInt(dao.id(name));     //获取其站台id   将其转换为int类型
    48         
    49         String name2 = req.getParameter("name2");
    50         int id2 = Integer.parseInt(dao.id(name2));
    51 
    52         if(id1<id2)
    53         {    
    54             String station=dao.station1(id1, id2);
    55             req.setAttribute("stations", station);
    56             
    57             
    58             String line=dao.line(name);
    59             System.out.print(line);
    60             req.setAttribute("lines", line);
    61             
    62             req.getRequestDispatcher("no_transfer_searchlist.jsp").forward(req,resp);//升序车站
    63             req.getRequestDispatcher("no_transfer_searchlist.jsp").forward(req,resp);//升序车站
    64         }else
    65         {
    66             
    67             String station=dao.station2(id2, id1);
    68             req.setAttribute("stations", station);
    69             
    70             
    71             String line=dao.line(name);
    72             System.out.print(line);
    73             req.setAttribute("lines", line);
    74             
    75             req.getRequestDispatcher("no_transfer_searchlist.jsp").forward(req,resp);//降序车站
    76             req.getRequestDispatcher("no_transfer_searchlist.jsp").forward(req,resp);//升序车站
    77         }
    78     
    79     }
    80     
    81 }

    下面是jsp文件。

    one_line_search.jsp

     1 <%@ page language="java" contentType="text/html; charset=utf-8"
     2     pageEncoding="utf-8"%>
     3 <!DOCTYPE html>
     4 <html>
     5 <head>
     6 <meta charset="utf-8">
     7 <title>一号线</title>
     8 <style>
     9     .a{
    10         margin-top: 20px;
    11     }
    12     .b{
    13         font-size: 20px;
    14          160px;
    15         color: white;
    16         background-color: greenyellow;
    17     }
    18 </style>
    19 </head>
    20 <body>
    21     <div align="center">
    22         <form action="SubwayServlet?method=one_line" method="post" onsubmit="return check()">
    23                 <div class="a">
    24                     一号线
    25             </div>
    26             <div class="a">
    27                 <button type="submit" class="b">查&nbsp;&nbsp;&nbsp;&nbsp;询</button>
    28             </div>
    29         </form>
    30     </div>
    31 </body>
    32 </html>

    one_line_searchlist.jsp

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>一号线</title>
    <style>
        .a{
            margin-top: 20px;
        }
        .b{
            font-size: 20px;
             160px;
            color: white;
            background-color: greenyellow;
        }
        .tb, td {
            border: 1px solid black;
            font-size: 22px;
        }
    </style>
    </head>
    <body>
        <div align="center">
        <table class="tb">
                <tr>
                    <td>站台</td>
                    <td>线路</td>
                    <td>起点站——终点站</td>
                    <td>站台</td>
                </tr>
                <!-- forEach遍历出adminBeans -->
                <c:forEach items="${ones}" var="item" varStatus="status">
                    <tr>
                        <td>${item.id}</td>
                        <td><a>${item.line}</a></td>
                        <td>${item.intro}</td>
                        <td>${item.route}</td>
                        <td>${item.name}</td>
                    </tr>
                </c:forEach>
            </table>
        </div>
    
    </body>
    </html>

    no_transfer_search.jsp

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html>
     4 <html>
     5 <head>
     6 <meta charset="UTF-8">
     7 <title>Insert title here</title>
     8 <style>
     9     .a{
    10         margin-top: 20px;
    11     }
    12     .b{
    13         font-size: 20px;
    14          160px;
    15         color: white;
    16         background-color: greenyellow;
    17     }
    18 </style>
    19 </head>。
    20 <body>
    21     <div align="center">
    22         <form action="SubwayServlet?method=no_transfer1" method="post" onsubmit="return check()">
    23             <div class="a">
    24                 起点站<input type="text" id="name" name="name"/>
    25             </div>
    26             <div class="a">
    27                 终点站<input type="text" id="name2" name="name2" />
    28             </div>
    29             <div class="a">
    30                 <button type="submit" class="b">查&nbsp;&nbsp;&nbsp;&nbsp;询</button>
    31             </div>
    32         </form>
    33     </div>
    34 
    35 </body>
    36 </html>

    no_transfer_searchlist.jsp

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 
     4 <!DOCTYPE html>
     5 <html>
     6 <head>
     7 <meta charset="UTF-8">
     8 <title>Insert title here</title>
     9 <style>
    10     .a{
    11         margin-top: 20px;
    12     }
    13     .b{
    14         font-size: 20px;
    15          160px;
    16         color: white;
    17         background-color: greenyellow;
    18     }
    19     .tb, td {
    20         border: 1px solid black;
    21         font-size: 22px;
    22     }
    23 </style>
    24 </head>
    25 <body>
    26     <div align="center">
    27         <table class="tb">
    28             <tr>
    29                 
    30                 <td></td>
    31                 <td>线路</td>
    32                 <td>车次</td>
    33             <tr></tr>
    34             
    35             <tr>
    36                 <td>中间站</td>
    37                 <td><%=request.getAttribute("stations") %></td>
    38                 <td><%=request.getAttribute("lines") %></td>
    39             </tr>
    40             
    41         </table>
    42     </div>
    43 </body>
    44 </html>

    数据库中的表(这个学期开了数据库,所以使用的是SQL server):

    运行结果:

      虽然系统没有报错,但在最后运行时如上图所示出了错。找了许久我们目前还是没找出错误。以上是我们当前的开发进度。

  • 相关阅读:
    [NOIP2008] 传纸条
    [NOIP2006] 能量项链
    [poj2393] Yogurt factory
    [poj3069] Saruman's Army
    [NOIP2011] 观光公交
    [NOIP2010] 关押罪犯
    [洛谷2744] 量取牛奶
    [poj3281] Dining
    关于几类STL容器的swap复杂度问题
    折半法
  • 原文地址:https://www.cnblogs.com/0518liu/p/11068973.html
Copyright © 2011-2022 走看看