源代码:
前端:
主界面index.j
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>石家庄地铁</title>
<style type="text/css">
.form{
width: 260px;
height :350px;
border:5px solid #808080;/*solid细线*/
padding: 10px 20px 30px 40px;
margin: 0px auto;
background:url("lantian.jpg") ;
background-size: 100% 100%;
float: left;
}
.logo{
width:100%;
height :100px;
background:url("SJZtube.jpg");
background-size: 100% 100%;
float: left;
}
</style>
</head>
<body>
<div class="logo"></div>
<div class="form">
<form action ="Tubeservlet?method=linecheck" method="post" onsubmit="return check()" >
<br>请选择线路:
<select name="originline" id="a">
<option value=0>起点</option>
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
<option value=5>5</option>
<option value=6>6</option>
</select>
<select name="endline" id="b">
<option value=0>终点</option>
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
<option value=5>5</option>
<option value=6>6</option>
</select><br>
起点:<input name="origin" id="origin" type="text" value="西王" size="20" maxlength="6"/><br>
终点:<input name="end" id="end" type="text" value="军医医院" size="20" maxlength="6"/><br>
<p> <input type="submit" value="确认"> <input type="reset" value="重填"/></p>
</form>
</div>
<script type="text/javascript">
function check() {
var a = document.getElementById("a");
var b= document.getElementById("b");
//非空
if(a.value == '0') {
alert('请选择起点线路');
a.focus();
return false;
}
if(b.value == '0') {
alert('请选择终点线路');
b.focus();
return false;
}
}
</script>
<div >
<img style="width: 600px;height :400px;float: left;" src="tubemap.jpg" id="map"/>
</div>
<script type="text/javascript">
var myimage = document.getElementById("map");
if (myimage.addEventListener) {
//addEventListener适用于版本较新的IE浏览器 ,如IE9以及火狐浏览器,
myimage.addEventListener("mousewheel", MouseWheelHandler, false);
// Firefox浏览器使用的滚轮事件是 DOMMouseScroll
myimage.addEventListener("DOMMouseScroll", MouseWheelHandler, false);
}
//attachEvent适用于旧的 IE浏览器,IE 6/7/8
else myimage.attachEvent("onmousewheel", MouseWheelHandler);
function MouseWheelHandler(e) {
var e = window.event;
var delta = Math.max(-1, Math.min(1, (e.wheelDelta)));
myimage.style.width = Math.max(600, myimage.width + (30 * delta)) + "px";
myimage.style.height = Math.max(400, myimage.height + (30 * delta)) + "px";
return false;
}
</script>
</body>
</html>
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>石家庄地铁</title>
<style type="text/css">
.form{
width: 260px;
height :350px;
border:5px solid #808080;/*solid细线*/
padding: 10px 20px 30px 40px;
margin: 0px auto;
background:url("lantian.jpg") ;
background-size: 100% 100%;
float: left;
}
.logo{
width:100%;
height :100px;
background:url("SJZtube.jpg");
background-size: 100% 100%;
float: left;
}
</style>
</head>
<body>
<div class="logo"></div>
<div class="form">
<form action ="Tubeservlet?method=linecheck" method="post" onsubmit="return check()" >
<br>请选择线路:
<select name="originline" id="a">
<option value=0>起点</option>
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
<option value=5>5</option>
<option value=6>6</option>
</select>
<select name="endline" id="b">
<option value=0>终点</option>
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
<option value=5>5</option>
<option value=6>6</option>
</select><br>
起点:<input name="origin" id="origin" type="text" value="西王" size="20" maxlength="6"/><br>
终点:<input name="end" id="end" type="text" value="军医医院" size="20" maxlength="6"/><br>
<p> <input type="submit" value="确认"> <input type="reset" value="重填"/></p>
</form>
</div>
<script type="text/javascript">
function check() {
var a = document.getElementById("a");
var b= document.getElementById("b");
//非空
if(a.value == '0') {
alert('请选择起点线路');
a.focus();
return false;
}
if(b.value == '0') {
alert('请选择终点线路');
b.focus();
return false;
}
}
</script>
<div >
<img style="width: 600px;height :400px;float: left;" src="tubemap.jpg" id="map"/>
</div>
<script type="text/javascript">
var myimage = document.getElementById("map");
if (myimage.addEventListener) {
//addEventListener适用于版本较新的IE浏览器 ,如IE9以及火狐浏览器,
myimage.addEventListener("mousewheel", MouseWheelHandler, false);
// Firefox浏览器使用的滚轮事件是 DOMMouseScroll
myimage.addEventListener("DOMMouseScroll", MouseWheelHandler, false);
}
//attachEvent适用于旧的 IE浏览器,IE 6/7/8
else myimage.attachEvent("onmousewheel", MouseWheelHandler);
function MouseWheelHandler(e) {
var e = window.event;
var delta = Math.max(-1, Math.min(1, (e.wheelDelta)));
myimage.style.width = Math.max(600, myimage.width + (30 * delta)) + "px";
myimage.style.height = Math.max(400, myimage.height + (30 * delta)) + "px";
return false;
}
</script>
</body>
</html>
index.jsp
需要换乘transfer.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style>
.a{
margin-top: 20px;
}
.b{
font-size: 20px;
width: 160px;
color: white;
background-color: greenyellow;
}
.tb, td {
border: 1px solid black;
font-size: 22px;
}
</style>
</head>
<body>
<div align="center">
<h1 style="color: red;">需换乘</h1>
<a href="index.jsp">返回主页</a>
<table class="tb">
<tr>
<td>名称</td>
</tr>
<c:forEach items="${tubestations1}" var="item1">
<tr>
<td>${item1.name}</td>
</tr>
</c:forEach>
<tr>
<td style="color: red;">换乘</td>
</tr>
<c:forEach items="${tubestations2}" var="item2">
<tr>
<td>${item2.name}</td>
</tr>
</c:forEach>
</table>
</div>
</body>
</html>
pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style>
.a{
margin-top: 20px;
}
.b{
font-size: 20px;
width: 160px;
color: white;
background-color: greenyellow;
}
.tb, td {
border: 1px solid black;
font-size: 22px;
}
</style>
</head>
<body>
<div align="center">
<h1 style="color: red;">需换乘</h1>
<a href="index.jsp">返回主页</a>
<table class="tb">
<tr>
<td>名称</td>
</tr>
<c:forEach items="${tubestations1}" var="item1">
<tr>
<td>${item1.name}</td>
</tr>
</c:forEach>
<tr>
<td style="color: red;">换乘</td>
</tr>
<c:forEach items="${tubestations2}" var="item2">
<tr>
<td>${item2.name}</td>
</tr>
</c:forEach>
</table>
</div>
</body>
</html>
transfer.jsp
不需要换乘notransfer.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style>
.a{
margin-top: 20px;
}
.b{
font-size: 20px;
width: 160px;
color: white;
background-color: greenyellow;
}
.tb, td {
border: 1px solid black;
font-size: 22px;
}
</style>
</head>
<body>
<div align="center">
<h1 style="color: red;">无需换乘</h1>
<a href="index.jsp">返回主页</a>
<table class="tb">
<tr>
<td>名称</td>
</tr>
<c:forEach items="${tubestations}" var="item">
<tr>
<td>${item.name}</td>
</tr>
</c:forEach>
</table>
</div>
</body>
</html>
pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style>
.a{
margin-top: 20px;
}
.b{
font-size: 20px;
width: 160px;
color: white;
background-color: greenyellow;
}
.tb, td {
border: 1px solid black;
font-size: 22px;
}
</style>
</head>
<body>
<div align="center">
<h1 style="color: red;">无需换乘</h1>
<a href="index.jsp">返回主页</a>
<table class="tb">
<tr>
<td>名称</td>
</tr>
<c:forEach items="${tubestations}" var="item">
<tr>
<td>${item.name}</td>
</tr>
</c:forEach>
</table>
</div>
</body>
</html>
notransfer.jsp
后台:
import java.io.IOException;
import java.util.List;
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 javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import entity.Tubestation;
import service.Tubeservice;
import service.Tubeservice;
/**
* Servlet implementation class Tubeservlet
*/
@WebServlet("/Tubeservlet")
public class Tubeservlet extends HttpServlet {
private static final long serialVersionUID = 1L;
Tubeservice service=new Tubeservice();
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
String method = req.getParameter("method");
if(method.equals("linecheck")){
linecheck(req,resp);
}else if(method.equals("showNotransferASC")){
showNotransferASC(req,resp);
}else if(method.equals("showNotransferDESC")){
showNotransferDESC(req,resp);
}else if(method.equals("compareId")){
compareId(req,resp);
}else if(method.equals("showTransfer")){
showTransfer(req,resp);
}
}
private void linecheck(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException{
/**
* 检查是否需要换乘
*/
req.setCharacterEncoding("utf-8");
String originline = req.getParameter("originline");//从jsp上得到名为originline的value值,这里是起点线路
String endline = req.getParameter("endline");//从jsp上得到名为endline的value值
int originlineint=Integer.parseInt(originline);//字符串转化为整数
int endlineint=Integer.parseInt(endline);
if(originlineint==endlineint) {
//无需换乘
req.getRequestDispatcher("Tubeservlet?method=compareId").forward(req,resp);
}else{
//需要换乘
req.getRequestDispatcher("Tubeservlet?method=showTransfer").forward(req,resp);
}
}
private void compareId(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
//比较站点id
String end = req.getParameter("end");
String origin = req.getParameter("origin");
String originline = req.getParameter("originline");
String endline = req.getParameter("endline");
req.setCharacterEncoding("utf-8");
int k=service.compareId(origin,end,originline,endline);
if(k==1) {
req.getRequestDispatcher("Tubeservlet?method=showNotransferASC").forward(req,resp);
}else if(k==2){
req.getRequestDispatcher("Tubeservlet?method=showNotransferDESC").forward(req,resp);
}else if(k==0){
req.setAttribute("message", "失败");
req.getRequestDispatcher("index.jsp").forward(req,resp);
}
}
private void showNotransferASC(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
// 升序列出数据
String originline = req.getParameter("originline");
String endline = req.getParameter("endline");
String end = req.getParameter("end");
String origin = req.getParameter("origin");
req.setCharacterEncoding("utf-8");
List<Tubestation> tubestations = service.showNotransferASC(origin,end,originline,endline);
req.setAttribute("tubestations", tubestations);
req.getRequestDispatcher("notransfer.jsp").forward(req,resp);
}
private void showNotransferDESC(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
// 降序列出数据
String end = req.getParameter("end");
String origin = req.getParameter("origin");
String originline = req.getParameter("originline");
String endline = req.getParameter("endline");
req.setCharacterEncoding("utf-8");
List<Tubestation> tubestations = service.showNotransferDESC(origin,end,originline,endline);
req.setAttribute("tubestations", tubestations);
req.getRequestDispatcher("notransfer.jsp").forward(req,resp);
}
private void showTransfer(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
/*
* 列出换乘信息
* 寻找换乘点
*/
String end = req.getParameter("end");
String origin = req.getParameter("origin");
String originline = req.getParameter("originline");
String endline = req.getParameter("endline");
req.setCharacterEncoding("utf-8");
String transfername=service.searchTransfer(originline,endline);
int k=service.compareId(origin, transfername, originline, originline);
if(k==1) {//列出第一段,起点-换乘站
List<Tubestation> tubestations1 = service.showNotransferASC(origin,transfername,originline,originline);
req.setAttribute("tubestations1", tubestations1);
int a=service.compareId(transfername, end,endline,endline);
if(a==1) {//列出第二段,换乘站-终点
List<Tubestation> tubestations2 = service.showNotransferASC(transfername, end,endline,endline);
req.setAttribute("tubestations2", tubestations2);
req.getRequestDispatcher("transfer.jsp").forward(req,resp);//最后跳转到界面,结束程序
}else if(a==2){
List<Tubestation> tubestations2 = service.showNotransferDESC(transfername, end,endline,endline);
req.setAttribute("tubestations2", tubestations2);
req.getRequestDispatcher("transfer.jsp").forward(req,resp);
}
}else if(k==2){
List<Tubestation> tubestations1 = service.showNotransferDESC(origin,transfername,originline,originline);
req.setAttribute("tubestations1", tubestations1);
int a=service.compareId( transfername, end,endline,endline);
if(a==1) {//列出第二段,换乘站-终点
List<Tubestation> tubestations2 = service.showNotransferASC(transfername, end,endline,endline);
req.setAttribute("tubestations2", tubestations2);
req.getRequestDispatcher("transfer.jsp").forward(req,resp);//最后跳转到界面,结束程序
}else if(a==2){
List<Tubestation> tubestations2 = service.showNotransferDESC(transfername, end,endline,endline);
req.setAttribute("tubestations2", tubestations2);
req.getRequestDispatcher("transfer.jsp").forward(req,resp);
}
}else if(k==0){
req.setAttribute("message", "失败");
req.getRequestDispatcher("index.jsp").forward(req,resp);
}
}
* Servlet implementation class Tubeservlet
*/
@WebServlet("/Tubeservlet")
public class Tubeservlet extends HttpServlet {
private static final long serialVersionUID = 1L;
Tubeservice service=new Tubeservice();
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
String method = req.getParameter("method");
if(method.equals("linecheck")){
linecheck(req,resp);
}else if(method.equals("showNotransferASC")){
showNotransferASC(req,resp);
}else if(method.equals("showNotransferDESC")){
showNotransferDESC(req,resp);
}else if(method.equals("compareId")){
compareId(req,resp);
}else if(method.equals("showTransfer")){
showTransfer(req,resp);
}
}
private void linecheck(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException{
/**
* 检查是否需要换乘
*/
req.setCharacterEncoding("utf-8");
String originline = req.getParameter("originline");//从jsp上得到名为originline的value值,这里是起点线路
String endline = req.getParameter("endline");//从jsp上得到名为endline的value值
int originlineint=Integer.parseInt(originline);//字符串转化为整数
int endlineint=Integer.parseInt(endline);
if(originlineint==endlineint) {
//无需换乘
req.getRequestDispatcher("Tubeservlet?method=compareId").forward(req,resp);
}else{
//需要换乘
req.getRequestDispatcher("Tubeservlet?method=showTransfer").forward(req,resp);
}
}
private void compareId(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
//比较站点id
String end = req.getParameter("end");
String origin = req.getParameter("origin");
String originline = req.getParameter("originline");
String endline = req.getParameter("endline");
req.setCharacterEncoding("utf-8");
int k=service.compareId(origin,end,originline,endline);
if(k==1) {
req.getRequestDispatcher("Tubeservlet?method=showNotransferASC").forward(req,resp);
}else if(k==2){
req.getRequestDispatcher("Tubeservlet?method=showNotransferDESC").forward(req,resp);
}else if(k==0){
req.setAttribute("message", "失败");
req.getRequestDispatcher("index.jsp").forward(req,resp);
}
}
private void showNotransferASC(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
// 升序列出数据
String originline = req.getParameter("originline");
String endline = req.getParameter("endline");
String end = req.getParameter("end");
String origin = req.getParameter("origin");
req.setCharacterEncoding("utf-8");
List<Tubestation> tubestations = service.showNotransferASC(origin,end,originline,endline);
req.setAttribute("tubestations", tubestations);
req.getRequestDispatcher("notransfer.jsp").forward(req,resp);
}
private void showNotransferDESC(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
// 降序列出数据
String end = req.getParameter("end");
String origin = req.getParameter("origin");
String originline = req.getParameter("originline");
String endline = req.getParameter("endline");
req.setCharacterEncoding("utf-8");
List<Tubestation> tubestations = service.showNotransferDESC(origin,end,originline,endline);
req.setAttribute("tubestations", tubestations);
req.getRequestDispatcher("notransfer.jsp").forward(req,resp);
}
private void showTransfer(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
/*
* 列出换乘信息
* 寻找换乘点
*/
String end = req.getParameter("end");
String origin = req.getParameter("origin");
String originline = req.getParameter("originline");
String endline = req.getParameter("endline");
req.setCharacterEncoding("utf-8");
String transfername=service.searchTransfer(originline,endline);
int k=service.compareId(origin, transfername, originline, originline);
if(k==1) {//列出第一段,起点-换乘站
List<Tubestation> tubestations1 = service.showNotransferASC(origin,transfername,originline,originline);
req.setAttribute("tubestations1", tubestations1);
int a=service.compareId(transfername, end,endline,endline);
if(a==1) {//列出第二段,换乘站-终点
List<Tubestation> tubestations2 = service.showNotransferASC(transfername, end,endline,endline);
req.setAttribute("tubestations2", tubestations2);
req.getRequestDispatcher("transfer.jsp").forward(req,resp);//最后跳转到界面,结束程序
}else if(a==2){
List<Tubestation> tubestations2 = service.showNotransferDESC(transfername, end,endline,endline);
req.setAttribute("tubestations2", tubestations2);
req.getRequestDispatcher("transfer.jsp").forward(req,resp);
}
}else if(k==2){
List<Tubestation> tubestations1 = service.showNotransferDESC(origin,transfername,originline,originline);
req.setAttribute("tubestations1", tubestations1);
int a=service.compareId( transfername, end,endline,endline);
if(a==1) {//列出第二段,换乘站-终点
List<Tubestation> tubestations2 = service.showNotransferASC(transfername, end,endline,endline);
req.setAttribute("tubestations2", tubestations2);
req.getRequestDispatcher("transfer.jsp").forward(req,resp);//最后跳转到界面,结束程序
}else if(a==2){
List<Tubestation> tubestations2 = service.showNotransferDESC(transfername, end,endline,endline);
req.setAttribute("tubestations2", tubestations2);
req.getRequestDispatcher("transfer.jsp").forward(req,resp);
}
}else if(k==0){
req.setAttribute("message", "失败");
req.getRequestDispatcher("index.jsp").forward(req,resp);
}
}
}
Tubeservlet.java
Tubeservice.java
import java.util.List;
import dao.Tubedao;
import entity.Tubestation;
public class Tubeservice {
Tubedao dao=new Tubedao();
public List<Tubestation> showNotransferASC(String origin, String end, String originline, String endline) {
return dao.showNotransferASC(origin,end,originline,endline);
}
public int compareId(String origin, String end, String originline, String endline) {
int f=0;
f=dao.compareId(origin,end,originline,endline);
return f;
}
public List<Tubestation> showNotransferDESC(String origin, String end, String originline, String endline) {
return dao.showNotransferDESC(origin,end,originline,endline);
}
public String searchTransfer(String originline, String endline) {
return dao.searchTransfer(originline,endline);
}
}
Tubedao.java
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import DButil.Shujuku;
import entity.Tubestation;
public class Tubedao {
public List<Tubestation> showNotransferASC(String origin,String end, String originline, String endline) {
/*
* 升序列出数据
* 起点id小于终点
*/
String sql = "select name from "+selectline(originline)+" "
+ "where id between (select id from "+selectline(originline)+" where name = '" + origin + "') "
+ "and (select id from "+selectline(originline)+" where name = '" + end + "')"
+ " order by id ASC";
Connection conn = Shujuku.conn();
Statement state = null;
ResultSet rs = null;
List<Tubestation> list = new ArrayList<>();
try {
state = conn.createStatement();
rs = state.executeQuery(sql);
Tubestation bean = null;
while (rs.next()) {
String name = rs.getString("name");
bean= new Tubestation(name);
list.add(bean);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
Shujuku.close(rs, state, conn);
}
return list;
}
public List<Tubestation> showNotransferDESC(String origin, String end, String originline, String endline) {
/*
* 降序列出数据
* 起点id大于终点
*/
String sql="select name from "+selectline(originline)+" "
+ "where id between (select id from "+selectline(originline)+" where name = '" + end + "') "
+ "and (select id from "+selectline(originline)+" where name = '" + origin + "') "
+ "order by id DESC";
Connection conn = Shujuku.conn();
Statement state = null;
ResultSet rs = null;
List<Tubestation> list = new ArrayList<>();
try {
state = conn.createStatement();
rs = state.executeQuery(sql);
Tubestation bean = null;
while (rs.next()) {
String name = rs.getString("name");
bean= new Tubestation(name);
list.add(bean);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
Shujuku.close(rs, state, conn);
}
return list;
}
public int compareId(String origin, String end, String originline, String endline) {
/**
* 通过站名比较id大小
* 决定降序或升序输出
*/
int a=getIdbyname(origin,originline);
int b=getIdbyname(end,endline);
int d=0;
if(a>b) {
d=2;
}else {
d=1;
}
return d;
}
public int getIdbyname(String name,String line) {
//通过站名得到id
String sql = "select id from "+selectline(line)+" where name ='" + name + "'";
Connection conn = Shujuku.conn();
Statement state = null;
ResultSet rs = null;
int id=0;
try {
state = conn.createStatement();
rs = state.executeQuery(sql);
while (rs.next()) {
id = rs.getInt("id");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
Shujuku.close(rs, state, conn);
}
return id;
}
public String selectline(String line) {
/*
* 从网页上得到线路,确定连接哪张表
* 说明:一条线路一张表
*/
int lineint=Integer.parseInt(line);
String sqlline=null;
if(lineint==1){
sqlline="tubestation1";
}else if(lineint==2) {
sqlline="tubestation2";
}else if(lineint==3) {
sqlline="tubestation3";
}else if(lineint==4) {
sqlline="tubestation4";
}else if(lineint==5) {
sqlline="tubestation5";
}else if(lineint==6) {
sqlline="tubestation6";
}
return sqlline;
}
public String searchTransfer(String originline, String endline) {
/*
* 根据line寻找换乘点
*/
int oline=Integer.parseInt(originline);
int dline=Integer.parseInt(endline);
int a=0;
int b=0;
if(oline>dline) {
a=dline;
b=oline;
}else {
a=oline;
b=dline;
}
int c=a*10+b;
String sql="select * from "+selectline(originline)+" where line='"+c+"'";
Connection conn = Shujuku.conn();
Statement state = null;
ResultSet rs = null;
String name=null;
try {
state = conn.createStatement();
rs = state.executeQuery(sql);
while (rs.next()) {
name = rs.getString("name");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
Shujuku.close(rs, state, conn);
}
return name;
}
}
Tubedao.java
Shujuku.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Shujuku {
public static Connection conn(){
String url="jdbc:sqlserver://localhost:1433;DatabaseName=SJZtube";//填写你的数据库名
String userName="sa";//填写你的用户名,我的是sa
String userPwd="tzk19991029";//填写你的密码tzk19991029
Connection connection=null;
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
System.out.println("加载驱动成功!");
}catch(Exception e){
e.printStackTrace();
System.out.println("加载驱动失败!");
}
try{
connection=DriverManager.getConnection(url,userName,userPwd);
System.out.println("连接数据库成功!");
}catch(Exception e){
e.printStackTrace();
System.out.print("SQL Server连接失败!");
}
return connection;
}
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();
}
}
}
}
Shujuku.java
Tubestation.java
public class Tubestation
{
private String name;
private String line;
private int id;
public void setName(String name)
{
this.name=name;
}
public String getName()
{
return name;
}
public void setLine(String line)
{
this.line=line;
}
public String getLine()
{
return line;
}
public void setId(int id)
{
this.id=id;
}
public int getId()
{
return id;
}
public Tubestation()
{
}
public Tubestation(String name)
{
this.name=name;
}
public Tubestation(int id, String name) {
this.name=name;
this.id=id;
}
}
Tubestation.java
实验截图:
主页面:(地图可缩放)


一条线路,无需换乘:

需要换乘:


来源:https://www.cnblogs.com/jmdd/p/11062152.html