• 小组开发地铁项目


    环境:Eclipse

    数据库:六条线的站点名分别录入六个表,huancheng那个表是换乘需要的条件。

     

    servlet:

    package com.sub.servlet;
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import com.sub.entity.subway;
    import com.sub.dao.Dao;
    /**
     * Servlet implementation class Servlet
     */
    @WebServlet("/Servlet")
    public class Servlet extends HttpServlet {
     private static final long serialVersionUID = 1L;
     Dao dao=new Dao();
     protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      request.setCharacterEncoding("utf-8");
      String method = request.getParameter("method");
      
      if ("chaxun".equals(method)) {
       chaxun(request, response);
      }
     }
     private void chaxun(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
     String start=request.getParameter("start");
     String end=request.getParameter("end");
     int a[]=new int[2];
     int b[]=new int[2];
     int k[]=new int[4];
     a=dao.getLineshuzu(start);
     b=dao.getLineshuzu(end);
     if((dao.site(start)||dao.site2(start)||dao.site3(start)||dao.site4(start)||dao.site5(start)||dao.site6(start))&&((dao.site(end)||dao.site2(end)||dao.site3(end)||dao.site4(end)||dao.site5(end)||dao.site6(end))))
     {
     if(((dao.getSum(start)>1&&dao.getSum(end)==1)||(dao.getSum(start)==1&&dao.getSum(end)>1)||(dao.getSum(start)>1&&dao.getSum(end)>1))&&((a[0]!=b[0])&&(a[0]!=b[1])&&(a[1]!=b[0])&&(a[1]!=b[1])))
     {
      String route="";
      int []temp=new int[4];
      int temp1=0;
      temp[0]=0;temp[1]=1;temp[2]=2;temp[3]=3;
      k[0]=a[0];k[1]=a[1];k[2]=b[0];k[3]=b[1];
      System.out.println(k[0]+","+k[1]+","+k[2]+","+k[3]);
      String a1=dao.getdouble(k[0], k[2]);
      String b1=dao.getdouble(k[0], k[3]);
      String c1=dao.getdouble(k[1], k[2]);
      String d1=dao.getdouble(k[1], k[3]);
      System.out.println(a1+","+b1+","+c1+","+d1);
      if(k[0]!=0&&k[2]!=0)
      {if(temp[temp1]==0)
      {
       System.out.println("");
       System.out.println("----------------线路Ⅰ:----------------");
       route=route+"-----线路Ⅰ:";
      }
      if(temp[temp1]==1)
      {
       System.out.println("");
       System.out.println("----------------线路Ⅱ:----------------");
       route=route+"-----线路Ⅱ:";
      }
      if(temp[temp1]==2)
      {
       System.out.println("");
       System.out.println("----------------线路Ⅲ:----------------");
       route=route+"-----线路Ⅲ:";
      }
      if(temp[temp1]==3)
      {
       System.out.println("");
       System.out.println("----------------线路Ⅳ:----------------");
       route=route+"-----线路Ⅳ:";
      }
      route=route+dao.getdoublesite(k[0], k[2], start, end);
      temp1++;
      }//0-2
      if(k[0]!=0&&k[3]!=0)
      {if(temp[temp1]==0)
      {
       System.out.println("");
       System.out.println("----------------线路Ⅰ:----------------");
       route=route+"-----线路Ⅰ:";
      }
      if(temp[temp1]==1)
      {
       System.out.println("");
       System.out.println("----------------线路Ⅱ:----------------");
       route=route+"-----线路Ⅱ:";
      }
      if(temp[temp1]==2)
      {
       System.out.println("");
       System.out.println("----------------线路Ⅲ:----------------");
       route=route+"-----线路Ⅲ:";
      }
      if(temp[temp1]==3)
      {
       System.out.println("");
       System.out.println("----------------线路Ⅳ:----------------");
       route=route+"-----线路Ⅳ:";
      }
      route=route+dao.getdoublesite(k[0], k[3], start, end);
      temp1++;
      }//0-3
      if(k[1]!=0&&k[2]!=0)
      {if(temp[temp1]==0)
      {
       System.out.println("");
       System.out.println("----------------线路Ⅰ:----------------");
       route=route+"-----线路Ⅰ:";
      }
      if(temp[temp1]==1)
      {
       System.out.println("");
       System.out.println("----------------线路Ⅱ:----------------");
       route=route+"-----线路Ⅱ:";
      }
      if(temp[temp1]==2)
      {
       System.out.println("");
       System.out.println("----------------线路Ⅲ:----------------");
       route=route+"-----线路Ⅲ:";
      }
      if(temp[temp1]==3)
      {
       System.out.println("");
       System.out.println("----------------线路Ⅳ:----------------");
       route=route+"-----线路Ⅳ:";
      }
      route=route+dao.getdoublesite(k[1], k[2], start, end);
      temp1++;
      }//1-2
      if(k[1]!=0&&k[3]!=0)
      {if(temp[temp1]==0)
      {  
       System.out.println("");
       System.out.println("----------------线路Ⅰ:----------------");
       route=route+"-----线路Ⅰ:";
      }
      if(temp[temp1]==1)
      {
       System.out.println("");
       System.out.println("----------------线路Ⅱ:----------------");
       route=route+"-----线路Ⅱ:";
      }
      if(temp[temp1]==2)
      {
       System.out.println("");
       System.out.println("----------------线路Ⅲ:----------------");
       route=route+"-----线路Ⅲ:";
      }
      if(temp[temp1]==3)
      {
       System.out.println("");
       System.out.println("----------------线路Ⅳ:----------------");
       route=route+"-----线路Ⅳ:";
      }
      route=route+dao.getdoublesite(k[1], k[3], start, end);
      temp1++;
      }//1-3
      request.setAttribute("data",route );
      request.getRequestDispatcher("Query1.jsp").forward(request, response);
     }
     if((dao.getSum(start)>1||dao.getSum(end)>1)&&((a[0]==b[0])||(a[0]==b[1])||(a[1]==b[0])||(a[1]==b[1])))
     {
      String route="";
      System.out.println(a[0]+","+a[1]+","+b[0]+","+b[1]);
      if(a[0]==b[0])
      {
       route=dao.getjkl(a[0], start, end);
      }
      if(a[0]==b[1])
      {
       route=dao.getjkl(a[0], start, end);
      }
      if(a[1]==b[0])
      {
       route=dao.getjkl(a[1], start, end);
      }
      if(a[1]==b[1])
      {
       route=dao.getjkl(a[1], start, end);
      }
      request.setAttribute("data",route );
      request.getRequestDispatcher("Query1.jsp").forward(request, response);
     }
     if(dao.site(start)&&dao.site(end)&&(dao.getLine(start)==1)&&(dao.getLine(end)==1)&&dao.getSum(start)==1&&dao.getSum(end)==1)
     {
      int num1=dao.getNum(start);
      int num2=dao.getNum(end);
      if(num1<=num2)
      {
      String line1=dao.getSiter1(num1, num2);
      System.out.println("路线为:"+line1);
      String route="路线为:"+line1;
      request.setAttribute("data",route );
      request.getRequestDispatcher("Query1.jsp").forward(request, response);
      }
      if(num1>num2)
      {
       String line2=dao.getSitek1(num1, num2);
       System.out.println("路线为:"+line2);
       String route="路线为:"+line2;
       request.setAttribute("data",route );
       request.getRequestDispatcher("Query1.jsp").forward(request, response);
      }
     }//两站都在一号线
     if(dao.site2(start)&&dao.site2(end)&&(dao.getLine(start)==2)&&(dao.getLine(end)==2)&&dao.getSum(start)==1&&dao.getSum(end)==1)
     {
      int num1=dao.getNum2(start);
      int num2=dao.getNum2(end);
      if(num1<=num2)
      {
      String line1=dao.getSiter2(num1, num2);
      System.out.println("路线为:"+line1);
      String route="路线为:"+line1;
      request.setAttribute("data",route);
      request.getRequestDispatcher("Query1.jsp").forward(request, response);
      }
      if(num1>num2)
      {
       String line2=dao.getSitek2(num1, num2);
       System.out.println("路线为:"+line2);
       String route="路线为:"+line2;
       request.setAttribute("data",route );
       request.getRequestDispatcher("Query1.jsp").forward(request, response);
      }
     }//两站都在二号线
     if(dao.site3(start)&&dao.site3(end)&&(dao.getLine(start)==3)&&(dao.getLine(end)==3)&&dao.getSum(start)==1&&dao.getSum(end)==1)
     {
      int num1=dao.getNum3(start);
      int num2=dao.getNum3(end);
      if(num1<=num2)
      {
      String line1=dao.getSiter3(num1, num2);
      System.out.println("路线为:"+line1);
      String route="路线为:"+line1;
      request.setAttribute("data",route );
      request.getRequestDispatcher("Query1.jsp").forward(request, response);
      }
      if(num1>num2)
      {
       String line2=dao.getSitek3(num1, num2);
       System.out.println("路线为:"+line2);
       String route="路线为:"+line2;
       request.setAttribute("data",route );
       request.getRequestDispatcher("Query1.jsp").forward(request, response);
      }
     }//两站都在三号线
     if(dao.site4(start)&&dao.site4(end)&&(dao.getLine(start)==4)&&(dao.getLine(end)==4)&&dao.getSum(start)==1&&dao.getSum(end)==1)
     {
      int num1=dao.getNum4(start);
      int num2=dao.getNum4(end);
      if(num1<=num2)
      {
      String line1=dao.getSiter4(num1, num2);
      System.out.println("路线为:"+line1);
      String route="路线为:"+line1;
      request.setAttribute("data",route );
      request.getRequestDispatcher("Query1.jsp").forward(request, response);
      }
      if(num1>num2)
      {
       String line2=dao.getSitek4(num1, num2);
       System.out.println("路线为:"+line2);
       String route="路线为:"+line2;
       request.setAttribute("data",route );
       request.getRequestDispatcher("Query1.jsp").forward(request, response);
      }
     }//两站都在四号线
     if(dao.site5(start)&&dao.site5(end)&&(dao.getLine(start)==5)&&(dao.getLine(end)==5)&&dao.getSum(start)==1&&dao.getSum(end)==1)
     {
      int num1=dao.getNum5(start);
      int num2=dao.getNum5(end);
      if(num1<=num2)
      {
      String line1=dao.getSiter5(num1, num2);
      System.out.println("路线为:"+line1);
      String route="路线为:"+line1;
      request.setAttribute("data",route );
      request.getRequestDispatcher("Query1.jsp").forward(request, response);
      }
      if(num1>num2)
      {
       String line2=dao.getSitek5(num1, num2);
       System.out.println("路线为:"+line2);
       String route="路线为:"+line2;
       request.setAttribute("data",route );
       request.getRequestDispatcher("Query1.jsp").forward(request, response);
      }
     }//两站都在五号线
     if(dao.site6(start)&&dao.site6(end)&&(dao.getLine(start)==6)&&(dao.getLine(end)==6)&&dao.getSum(start)==1&&dao.getSum(end)==1)
     {
      int num1=dao.getNum6(start);
      int num2=dao.getNum6(end);
      if(num1<=num2)
      {
      String line1=dao.getSiter6(num1, num2);
      System.out.println("路线为:"+line1);
      String route="路线为:"+line1;
      request.setAttribute("data",route );
      request.getRequestDispatcher("Query1.jsp").forward(request, response);
      }
      if(num1>num2)
      {
       String line2=dao.getSitek6(num1, num2);
       System.out.println("路线为:"+line2);
       String route="路线为:"+line2;
       request.setAttribute("data",route );
       request.getRequestDispatcher("Query1.jsp").forward(request, response);
      }
     }//两站都在六号线
     if(a[1]==0&&b[1]==0&&a[0]!=b[0]&&dao.getSum(start)==1&&dao.getSum(end)==1)//所有换乘(不包括任意换乘点)
     {
      String route="";
            int []d=new int[4];
      String []c=new String[2];
      System.out.println(a[0]+","+b[0]);
      c=dao.getgline(a, b);
      d=dao.getviewnum(a, b, c, start, end);
         route=dao.getview(a, b, d[0], d[2],d[1],d[3]);
         if(c[1]!="")
         {
          String route1="";
          System.out.println("");
          System.out.print("第二条路线:");
          c=dao.getgline(a, b);
       d=dao.getviewnum1(a, b, c, start, end);
       route=route+"**********";
          route1=dao.getview(a, b, d[0], d[2],d[1],d[3]);
          route=route+"第二条路线:"+route1;
         }
         request.setAttribute("data",route );
      request.getRequestDispatcher("Query1.jsp").forward(request, response);
     }
     }
     else
     {
       request.setAttribute("data","输入站点有误!" );
       request.getRequestDispatcher("Query1.jsp").forward(request, response);
     }
     }
     }
    dao:
    都是函数,好几千行。。。。
    工具类:
    package com.sub.DBUtil;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    public class DBUtil {
     public static String db_url = "jdbc:mysql://localhost:3306/railway";
     public static String db_user = "root";
     public static String db_pass = "893225523";
     
     public static Connection getConn () {
      Connection conn = null;
      
      try {
       Class.forName("com.mysql.jdbc.Driver");//加载驱动
       conn = DriverManager.getConnection(db_url, db_user, db_pass);
      } catch (Exception e) {
       e.printStackTrace();
      }
      
      return conn;
     }
     
     /**
      * 关闭连接
      * @param state
      * @param conn
      */
     public static void close (Statement state, Connection conn) {
      if (state != null) {
       try {
        state.close();
       } catch (SQLException e) {
        e.printStackTrace();
       }
      }
      
      if (conn != null) {
       try {
        conn.close();
       } catch (SQLException e) {
        e.printStackTrace();
       }
      }
     }
     
     public static void close (ResultSet rs, Statement state, Connection conn) {
      if (rs != null) {
       try {
        rs.close();
       } catch (SQLException e) {
        e.printStackTrace();
       }
      }
      
      if (state != null) {
       try {
        state.close();
       } catch (SQLException e) {
        e.printStackTrace();
       }
      }
      
      if (conn != null) {
       try {
        conn.close();
       } catch (SQLException e) {
        e.printStackTrace();
       }
      }
     }
    }
  • 相关阅读:
    对进程空间的认识
    自己实现智能指针
    实现一个string类
    常见问题总结
    pong game using ncurses
    知识梳理
    经典算法回顾
    自己实现more命令
    表的垂直拆分和水平拆分-zz
    MySQL索引原理及慢查询优化-zz
  • 原文地址:https://www.cnblogs.com/jccjcc/p/11006054.html
Copyright © 2020-2023  润新知