第一次结对作业
今天我们建立了数据库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>
团队照片:
队友:王洪兵
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下