第一次结对作业

今天我们建立了数据库subway和第一个数据库line:

 

 

 

 

后端这里:

1.com.Bean包

Bean.java

复制代码
package com.bean;

import java.util.ArrayList;

public class Line {
    private String startstopname;//起始站站名
    private String endstopname;//结束站站名
    private int startstopID;//    起始站站编号
    private int endstopID;//结束站站编号
    private String startline1=null;//起始点的第一条线
    private String startline2=null;//起始点第二条线
    private String endline1=null;//结束点的第一条线
    private String endline2=null;//结束点的第二条线
    private ArrayList<String> array = new ArrayList<String>();//存放过程站点
    private int originline;//起始站所在线路
    private int finishline;//结束点所在线路
    private String middlestop;//中转站站名
    private String temporarystartstopname;//临时起始站点名称
    private String temporaryendstopname;//临时终点站点名称
    private int temporaryline=0;//临时线路

    public Line() {
    }

    public String getStartstopname() {
        return startstopname;
    }

    public void setStartstopname(String startstopname) {
        this.startstopname = startstopname;
    }

    public String getEndstopname() {
        return endstopname;
    }

    public void setEndstopname(String endstopname) {
        this.endstopname = endstopname;
    }

    public int getStartstopID() {
        return startstopID;
    }

    public void setStartstopID(int startstopID) {
        this.startstopID = startstopID;
    }

    public int getEndstopID() {
        return endstopID;
    }

    public void setEndstopID(int endstopID) {
        this.endstopID = endstopID;
    }

    public String getStartline1() {
        return startline1;
    }

    public void setStartline1(String startline1) {
        this.startline1 = startline1;
    }

    public String getStartline2() {
        return startline2;
    }

    public void setStartline2(String startline2) {
        this.startline2 = startline2;
    }

    public String getEndline1() {
        return endline1;
    }

    public void setEndline1(String endline1) {
        this.endline1 = endline1;
    }

    public String getEndline2() {
        return endline2;
    }

    public void setEndline2(String endline2) {
        this.endline2 = endline2;
    }

    public ArrayList<String> getArray() {
        return array;
    }

    public void setArray(ArrayList<String> array) {
        this.array = array;
    }

    public int getOriginline() {
        return originline;
    }

    public void setOriginline(int originline) {
        this.originline = originline;
    }

    public int getFinishline() {
        return finishline;
    }

    public void setFinishline(int finishline) {
        this.finishline = finishline;
    }

    public String getMiddlestop() {
        return middlestop;
    }

    public void setMiddlestop(String middlestop) {
        this.middlestop = middlestop;
    }

    public String getTemporarystartstopname() {
        return temporarystartstopname;
    }

    public void setTemporarystartstopname(String temporarystartstopname) {
        this.temporarystartstopname = temporarystartstopname;
    }

    public String getTemporaryendstopname() {
        return temporaryendstopname;
    }

    public void setTemporaryendstopname(String temporaryendstopname) {
        this.temporaryendstopname = temporaryendstopname;
    }

    public int getTemporaryline() {
        return temporaryline;
    }

    public void setTemporaryline(int temporaryline) {
        this.temporaryline = temporaryline;
    }

    @Override
    public String toString() {
        return "Line{" +
                "startstopname='" + startstopname + '\'' +
                ", endstopname='" + endstopname + '\'' +
                ", startstopID=" + startstopID +
                ", endstopID=" + endstopID +
                ", startline1='" + startline1 + '\'' +
                ", startline2='" + startline2 + '\'' +
                ", endline1='" + endline1 + '\'' +
                ", endline2='" + endline2 + '\'' +
                ", array=" + array +
                ", originline=" + originline +
                ", finishline=" + finishline +
                ", middlestop='" + middlestop + '\'' +
                ", temporarystartstopname='" + temporarystartstopname + '\'' +
                ", temporaryendstopname='" + temporaryendstopname + '\'' +
                ", temporaryline=" + temporaryline +
                '}';
    }
}
复制代码

 

2.com.Dao包

DateBuilder.java

复制代码
package com.Dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import com.DBUtil.SubwayDBUtil;
public class DataBuilder {
    public static List<Station> line1 = new ArrayList<Station>();//1号线
    public static List<Station> line2 = new ArrayList<Station>();//2号线
    public static List<Station> line3 = new ArrayList<Station>();//3号线
    public static List<Station> line4 = new ArrayList<Station>();//4号线
    public static List<Station> line5 = new ArrayList<Station>();//5号线
    public static List<Station> line6 = new ArrayList<Station>();//6号线
    public static Set<List<Station>> lineSet = new HashSet<List<Station>>();//所有线集合
    public static int totalStaion = 0;//总的站点数量
    static {
        /*******************************************************************************/
        //1号线
        String[] line1Arr = new String[29];
        Connection conn1 = SubwayDBUtil.getConn();
        try {
            Statement stmt = conn1.createStatement();
            String sql = "select * from line where lineid=1";
            ResultSet rs = stmt.executeQuery(sql);
            int k = 0;
            while(rs.next()) {
                line1Arr[k] = rs.getString("stationname");
                k++;
            }
            conn1.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        for(String s : line1Arr) {
            line1.add(new Station(s));
        }
        for(int i =0;i<line1.size();i++) {
            if(i<line1.size()-1) {
                line1.get(i).next = line1.get(i+1);
                line1.get(i+1).prev = line1.get(i);
            }
        }

        /*******************************************************************************/
        //2号线
        String[] line2Arr = new String[37];
        Connection conn2 = SubwayDBUtil.getConn();
        try {
            Statement stmt = conn2.createStatement();
            String sql = "select * from line where lineid=2";
            ResultSet rs = stmt.executeQuery(sql);
            int k = 0;
            while(rs.next()) {
                line2Arr[k] = rs.getString("stationname");
                k++;
            }
            conn2.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        for(String s : line2Arr) {
            line2.add(new Station(s));
        }
        for(int i =0;i<line2.size();i++) {
            if(i<line2.size()-1) {
                line2.get(i).next = line2.get(i+1);
                line2.get(i+1).prev = line2.get(i);
            }
        }

        /*******************************************************************************/
        //3号线
        String[] line3Arr = new String[35];
        Connection conn3 = SubwayDBUtil.getConn();
        try {
            Statement stmt = conn3.createStatement();
            String sql = "select * from line where lineid=3";
            ResultSet rs = stmt.executeQuery(sql);
            int k = 0;
            while(rs.next()) {
                line3Arr[k] = rs.getString("stationname");
                k++;
            }
            conn3.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        for(String s : line3Arr) {
            line3.add(new Station(s));
        }
        for(int i =0;i<line3.size();i++) {
            if(i<line3.size()-1) {
                line3.get(i).next = line3.get(i+1);
                line3.get(i+1).prev = line3.get(i);
            }
        }

        /*******************************************************************************/
        //4号线
        String[] line4Arr = new String[18];
        Connection conn4 = SubwayDBUtil.getConn();
        try {
            Statement stmt = conn4.createStatement();
            String sql = "select * from line where lineid=4";
            ResultSet rs = stmt.executeQuery(sql);
            int k = 0;
            while(rs.next()) {
                line4Arr[k] = rs.getString("stationname");
                k++;
            }
            conn4.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        for(String s : line4Arr) {
            line4.add(new Station(s));
        }
        for(int i =0;i<line4.size();i++) {
            if(i<line4.size()-1) {
                line4.get(i).next = line4.get(i+1);
                line4.get(i+1).prev = line4.get(i);
            }
        }

        /*******************************************************************************/
        //5号线
        String[] line5Arr = new String[21];
        Connection conn5 = SubwayDBUtil.getConn();
        try {
            Statement stmt = conn5.createStatement();
            String sql = "select * from line where lineid=5";
            ResultSet rs = stmt.executeQuery(sql);
            int k = 0;
            while(rs.next()) {
                line5Arr[k] = rs.getString("stationname");
                k++;
            }
            conn5.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        for(String s : line5Arr) {
            line5.add(new Station(s));
        }
        for(int i =0;i<line5.size();i++) {
            if(i<line5.size()-1) {
                line5.get(i).next = line5.get(i+1);
                line5.get(i+1).prev = line5.get(i);
            }
        }

        /*******************************************************************************/
        //s8号线
        String[] line6Arr = new String[19];
        Connection conn6 = SubwayDBUtil.getConn();
        try {
            Statement stmt = conn6.createStatement();
            String sql = "select * from line where lineid=6";
            ResultSet rs = stmt.executeQuery(sql);
            int k = 0;
            while(rs.next()) {
                line6Arr[k] = rs.getString("stationname");
                k++;
            }
            conn6.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        for(String s : line6Arr) {
            line6.add(new Station(s));
        }
        for(int i =0;i<line6.size();i++) {
            if(i<line6.size()-1) {
                line6.get(i).next = line6.get(i+1);
                line6.get(i+1).prev = line6.get(i);
            }
        }

        /*******************************************************************************/
        lineSet.add(line1);
        lineSet.add(line2);
        lineSet.add(line3);
        lineSet.add(line4);
        lineSet.add(line5);
        lineSet.add(line6);
        totalStaion  = line1.size() + line2.size() + line3.size() + line4.size() + line5.size() + line6.size();
        System.out.println("总的站点数量:"+totalStaion);
    }
    public static void main(String[] args) {
        System.out.println("总的站点数量:"+totalStaion);
    }
}
复制代码

station,java

复制代码
package com.Dao;


import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.Map;

    public class Station {
        private String name; //地铁站名称,假设具备唯一性
        public Station prev; //本站在lineNo线上面的前一个站
        public Station next; //本站在lineNo线上面的后一个站

        //本站到某一个目标站(key)所经过的所有站集合(value),保持前后顺序
        private Map<Station,LinkedHashSet<Station>> orderSetMap = new HashMap<Station,LinkedHashSet<Station>>();

        public Station (String name){
            this.name = name;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public LinkedHashSet<Station> getAllPassedStations(Station station) {
            if(orderSetMap.get(station) == null) {
                LinkedHashSet<Station> set = new LinkedHashSet<Station>();
                set.add(this);
                orderSetMap.put(station, set);
            }
            return orderSetMap.get(station);
        }

        public Map<Station, LinkedHashSet<Station>> getOrderSetMap() {
            return orderSetMap;
        }

        @Override
        public boolean equals(Object obj) {
            if(this == obj){
                return true;
            }
            else if(obj instanceof Station) {
                Station s = (Station) obj;
                if(s.getName().equals(this.getName())) {
                    return true;
                }
                else {
                    return false;
                }
            }
            else {
                return false;
            }
        }


        @Override
        public int hashCode() {
            return this.getName().hashCode();
        }

    }
复制代码

3.com.DBUtil

DBUtilsubway.java

复制代码
package com.Dao;


import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.Map;

    public class Station {
        private String name; //地铁站名称,假设具备唯一性
        public Station prev; //本站在lineNo线上面的前一个站
        public Station next; //本站在lineNo线上面的后一个站

        //本站到某一个目标站(key)所经过的所有站集合(value),保持前后顺序
        private Map<Station,LinkedHashSet<Station>> orderSetMap = new HashMap<Station,LinkedHashSet<Station>>();

        public Station (String name){
            this.name = name;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public LinkedHashSet<Station> getAllPassedStations(Station station) {
            if(orderSetMap.get(station) == null) {
                LinkedHashSet<Station> set = new LinkedHashSet<Station>();
                set.add(this);
                orderSetMap.put(station, set);
            }
            return orderSetMap.get(station);
        }

        public Map<Station, LinkedHashSet<Station>> getOrderSetMap() {
            return orderSetMap;
        }

        @Override
        public boolean equals(Object obj) {
            if(this == obj){
                return true;
            }
            else if(obj instanceof Station) {
                Station s = (Station) obj;
                if(s.getName().equals(this.getName())) {
                    return true;
                }
                else {
                    return false;
                }
            }
            else {
                return false;
            }
        }


        @Override
        public int hashCode() {
            return this.getName().hashCode();
        }

    }
复制代码

4.com.Servlet

SearchServlet.java

复制代码
package com.Dao;


import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.Map;

    public class Station {
        private String name; //地铁站名称,假设具备唯一性
        public Station prev; //本站在lineNo线上面的前一个站
        public Station next; //本站在lineNo线上面的后一个站

        //本站到某一个目标站(key)所经过的所有站集合(value),保持前后顺序
        private Map<Station,LinkedHashSet<Station>> orderSetMap = new HashMap<Station,LinkedHashSet<Station>>();

        public Station (String name){
            this.name = name;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public LinkedHashSet<Station> getAllPassedStations(Station station) {
            if(orderSetMap.get(station) == null) {
                LinkedHashSet<Station> set = new LinkedHashSet<Station>();
                set.add(this);
                orderSetMap.put(station, set);
            }
            return orderSetMap.get(station);
        }

        public Map<Station, LinkedHashSet<Station>> getOrderSetMap() {
            return orderSetMap;
        }

        @Override
        public boolean equals(Object obj) {
            if(this == obj){
                return true;
            }
            else if(obj instanceof Station) {
                Station s = (Station) obj;
                if(s.getName().equals(this.getName())) {
                    return true;
                }
                else {
                    return false;
                }
            }
            else {
                return false;
            }
        }


        @Override
        public int hashCode() {
            return this.getName().hashCode();
        }

    }
复制代码

结果显示页面

1 <%@ page import="java.util.ArrayList" %>
2 <%@ page language="java" contentType="text/html; charset=UTF-8"
3 pageEncoding="UTF-8"%>
4 <!DOCTYPE html>
5 <html>
6 <head>
7 <meta charset="UTF-8">
8 <title>Insert title here</title>
9 </head>
10 <body>
11 <%ArrayList array=(ArrayList)request.getAttribute("stop"); %>
12 <%if(array==null){
13 request.setAttribute("message", "请输入数据!");
14 request.getRequestDispatcher("/Query.jsp").forward(request, response);
15 }else{%>
16 <%for(int i=0;i<array.size();i++){%>
17 <th>
18 <%=array.get(i) %>
19 </th>
20 <%}
21 }%>
22 <form action="Query.jsp">
23 <button type="submit">回到首页</button>
24 </form>
25 </body>
26 </html>


首页

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>北京地铁查询</title>
<style type="text/css">
.a {
margin-top: 1em;
margin-right: 23em;
margin-bottom: 1em;
margin-left: 23em;

}
.bg{
width: 800px;
height: 748px;
/*background-image:url(地铁图.png);*/
background-repeat:repeat;
}
</style>
</head>
<body class="bg">
<% String msg="";
String message=(String)request.getAttribute("message");
if(message!=null){
msg=message;
}
%>
<h1 style="color:red" align="center">石家庄地铁</h1>

<form action="/newstructure/servlet" method="post" onsubmit="return check();">
<div class="a">
<%=msg %>
</div>
<div class="a">
起始站:<input type="text" name="startstopname" id="startstopname"/>

<br/>

终点站:<input type="text" name="endstopname" id="endstopname"/>
</div>
<div class="a">
<input type="submit" value="提交" onclick="check();"/>
</div>
</form>
<div class="a">
<a href="subway.htm">点击查看地图</a>
</div>
<script type="text/javascript">
function check() {
var startstopname = document.getElementById("startstopname");
var endstopname = document.getElementById("endstopname");
if(startstopname.value=='') {
alert('请填写起点站');
return false;
}else if(endstopname.value==''){
alert('请填写终点站');
return false;
}
else{
return true;
}
}
</script>
</body>
</html>

团队照片:

 

队友:王洪兵

 

posted @   庞司令  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示