4-结对开发地铁

本周三提交一篇结队作业的博客,只是1.0版本,好多功能还没有实现,但是数据库的连接以及基本的界面设计已经完成了,以下是代码,不代表最终的成品。

package com.demo;
import util.util;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

import javax.swing.plaf.synth.SynthSpinnerUI;

public class LoginerDaolmpl {
	static Connection conn;
    static PreparedStatement ps = null;
    static ResultSet rs;
    static String sql = "select * from station";
    static util ut= new util();
	static Scanner in = new Scanner(System.in);
	
	public User loadUser(String a) {
		conn=ut.getConn();
		ps=null;
		ResultSet rs=null;
		User user=null;
		sql="select * from station where Name=?";
		try {
			ps=conn.prepareStatement(sql);
			ps.setString(1, a);
			rs=ps.executeQuery();
			if(rs.next()) {
				user=new User();
				user.setName(rs.getString("Name"));
				user.setId(rs.getInt("Id"));
	            user.setLine(rs.getInt("Line")) ;
	            user.setNum(rs.getInt("Num"));
	            user.setExchange(rs.getInt("Exchange"));
			}
		}catch(SQLException e) {
			e.printStackTrace();
		}finally {
			try {
				 if(ps!=null)ps.close();
				 if(conn!=null)conn.close();
			 }catch(Exception e2) {
				 e2.printStackTrace();
			 }
		}
		return user;
	}
	public User Select_Id(int a) {
		conn=ut.getConn();
		ps=null;
		ResultSet rs=null;
		User user=null;
		sql="select * from station where Id=?";
		try {
			ps=conn.prepareStatement(sql);
			ps.setInt(1, a);
			rs=ps.executeQuery();
			if(rs.next()) {
				user=new User();
				user.setName(rs.getString("Name"));
				user.setId(rs.getInt("Id"));
	            user.setLine(rs.getInt("Line")) ;
	            user.setNum(rs.getInt("Num"));
	            user.setExchange(rs.getInt("Exchange"));
			}
		}catch(SQLException e) {
			e.printStackTrace();
		}finally {
			try {
				 if(ps!=null)ps.close();
				 if(conn!=null)conn.close();
			 }catch(Exception e2) {
				 e2.printStackTrace();
			 }
		}
		return user;
	}
	
	public List<User> load(){
		conn=ut.getConn();
		ps=null;
		ResultSet rs=null;
		String id;
		sql="select * from station order by Id ";
//		sql="select * from station where Id between ? and ? order by Id";
		List<User> users=new ArrayList<User>();
		User user=null;
		try {
			ps=conn.prepareStatement(sql);
			rs=ps.executeQuery();
			while(rs.next()) {
				user=new User();
				user.setName(rs.getString("Name"));
				user.setId(rs.getInt("Id"));
	            user.setLine(rs.getInt("Line")) ;
	            user.setNum(rs.getInt("Num"));
	            user.setExchange(rs.getInt("Exchange"));
	            users.add(user);
			}
		}catch(SQLException e) {
			e.printStackTrace();
		}finally {
			try {
				 if(ps!=null)ps.close();
				 if(conn!=null)conn.close();
			 }catch(Exception e2) {
				 e2.printStackTrace();
			 }
		}
		return users;
	}
	//只能返回站数,能判断一条线上,有两个转战口,但不能判断 三条最近 
	public int Num1(String a,String b)
	{
		User start=new User();
		start=loadUser(a);
		User end=new User();
		end=loadUser(b);
		User Mid=new User();
		int num=0;
		if(start.getLine()==end.getLine())
		{
		num=Math.abs(start.getNum()-end.getNum());
		
		}
		if(start.getLine()==1&&end.getLine()==2)
		{
			int N=0,M=0;
			N=Math.abs(start.getNum()-4)+Math.abs(end.getNum()-6);
			M=Math.abs(start.getNum()-20)+Math.abs(end.getNum()-20);
			if(N>M)num=M;
			else num=N;
		}
		if(start.getLine()==1&&end.getLine()==3)
		{
			num=Math.abs(start.getNum()-23)+Math.abs(end.getNum()-13);
		}
		if(start.getLine()==1&&end.getLine()==4)
		{
			num=Math.abs(start.getNum()-17)+Math.abs(end.getNum()-13);
		}
		if(start.getLine()==1&&end.getLine()==5)
		{
			int N=0,M=0;
			N=Math.abs(start.getNum()-10)+Math.abs(end.getNum()-19);
			M=Math.abs(start.getNum()-25)+Math.abs(end.getNum()-7);
			if(N>M)num=M;
			else num=N;
		}
		if(start.getLine()==1&&end.getLine()==6)
		{
			num=Math.abs(start.getNum()-13)+Math.abs(end.getNum()-14);
		}
		if(start.getLine()==2&&end.getLine()==1)
		{
			int N=0,M=0;
			N=Math.abs(start.getNum()-6)+Math.abs(end.getNum()-4);
			M=Math.abs(start.getNum()-20)+Math.abs(end.getNum()-20);
			if(N>M)num=M;
			else num=N;
		}
		if(start.getLine()==2&&end.getLine()==3)
		{
			num=Math.abs(start.getNum()-25)+Math.abs(end.getNum()-17);
		}
		if(start.getLine()==2&&end.getLine()==4)
		{
			num=Math.abs(start.getNum()-27)+Math.abs(end.getNum()-5);
		}
		if(start.getLine()==2&&end.getLine()==5)
		{
			num=Math.abs(start.getNum()-18)+Math.abs(end.getNum()-13);
		}
		if(start.getLine()==2&&end.getLine()==6)
		{
			num=Math.abs(start.getNum()-22)+Math.abs(end.getNum()-8);
		}
		if(start.getLine()==3&&end.getLine()==1)
		{
			num=Math.abs(start.getNum()-13)+Math.abs(end.getNum()-23);
		}
		if(start.getLine()==3&&end.getLine()==2)
		{
			num=Math.abs(start.getNum()-17)+Math.abs(end.getNum()-25);
		}
		if(start.getLine()==3&&end.getLine()==4)
		{
			num=Math.abs(start.getNum()-22)+Math.abs(end.getNum()-9);
		}
		if(start.getLine()==3&&end.getLine()==5)
		{
			num=Math.abs(start.getNum()-11)+Math.abs(end.getNum()-11);
		}
		if(start.getLine()==3&&end.getLine()==6)
		{
			int N=0,M=0;
			N=Math.abs(start.getNum()-26)+Math.abs(end.getNum()-16);
			M=Math.abs(start.getNum()-15)+Math.abs(end.getNum()-5);
			if(N>M)num=M;
			else num=N;
		}
		if(start.getLine()==4&&end.getLine()==1)
		{
			num=Math.abs(start.getNum()-13)+Math.abs(end.getNum()-17);
		}
		if(start.getLine()==4&&end.getLine()==2)
		{
			num=Math.abs(start.getNum()-5)+Math.abs(end.getNum()-27);
		}
		if(start.getLine()==4&&end.getLine()==3)
		{
			num=Math.abs(start.getNum()-9)+Math.abs(end.getNum()-22);
		}
		if(start.getLine()==4&&end.getLine()==5)
		{
			int N=0,M=0;
			N=Math.abs(start.getNum()-15)+Math.abs(end.getNum()-15);
			M=Math.abs(start.getNum()-3)+Math.abs(end.getNum()-2);
			if(N>M)num=M;
			else num=N;
		}
		if(start.getLine()==4&&end.getLine()==6)
		{
			num=Math.abs(start.getNum()-11)+Math.abs(end.getNum()-11);
		}
		if(start.getLine()==5&&end.getLine()==1)
		{
			int N=0,M=0;
			N=Math.abs(start.getNum()-19)+Math.abs(end.getNum()-10);
			M=Math.abs(start.getNum()-25)+Math.abs(end.getNum()-7);
			if(N>M)num=M;
			else num=N;
		}
		if(start.getLine()==5&&end.getLine()==2)
		{
			num=Math.abs(start.getNum()-13)+Math.abs(end.getNum()-18);
		}
		if(start.getLine()==5&&end.getLine()==3)
		{
			num=Math.abs(start.getNum()-11)+Math.abs(end.getNum()-11);
		}
		if(start.getLine()==5&&end.getLine()==4  )
		{
			int N=0,M=0;
			N=Math.abs(start.getNum()-19)+Math.abs(end.getNum()-10);
			M=Math.abs(start.getNum()-25)+Math.abs(end.getNum()-7);
			if(N>M)num=M;
			else num=N;
		}
		if(start.getLine()==5&&end.getLine()==6)
		{
			num=Math.abs(start.getNum()-4)+Math.abs(end.getNum()-3);
		}
		if(start.getLine()==6&&end.getLine()==1)
		{
			num=Math.abs(start.getNum()-14)+Math.abs(end.getNum()-13);
		}
		if(start.getLine()==6&&end.getLine()==2)
		{
			num=Math.abs(start.getNum()-8)+Math.abs(end.getNum()-22);
		}
		if(start.getLine()==6&&end.getLine()==3  )
		{
			int N=0,M=0;
			N=Math.abs(start.getNum()-16)+Math.abs(end.getNum()-26);
			M=Math.abs(start.getNum()-5)+Math.abs(end.getNum()-15);
			if(N>M)num=M;
			else num=N;
		}
		if(start.getLine()==6&&end.getLine()==4)
		{
			num=Math.abs(start.getNum()-11)+Math.abs(end.getNum()-11);
		}
		if(start.getLine()==6&&end.getLine()==5)
		{
			num=Math.abs(start.getNum()-3)+Math.abs(end.getNum()-4);
		}
		System.out.println(num);
		return num;
	}

	//只能返回站名,不能判断两个转战口,同时不能判断三条最近
	
	public List<User> Num2(String a,String b)
	{
	User start=new User();
	User end=new User();
	start=loadUser(a);
	end=loadUser(b);
	conn=ut.getConn();
	ps=null;
	ResultSet rs=null;
	String id;
	sql="select * from station where Id between ? and ? order by Id";
	List<User> users=new ArrayList<User>();
	User user=null;
	
	if(start.getLine()==end.getLine())//一条线
	{
		if(start.getId()<=end.getId())
		{
			try {
		ps=conn.prepareStatement(sql);
		ps.setInt(1, start.getId());
		ps.setInt(2, end.getId());
		
		rs=ps.executeQuery();
		while(rs.next()) {
			user=new User();
			user.setName(rs.getString("Name"));
			user.setId(rs.getInt("Id"));
            user.setLine(rs.getInt("Line")) ;
            user.setNum(rs.getInt("Num"));
            user.setExchange(rs.getInt("Exchange"));
            users.add(user);
		}
	}catch(SQLException e) {
		e.printStackTrace();
	}
	}
		else
		{
			
			try {
				sql="select * from station where Id between ? and ? order by Id desc";
				ps=conn.prepareStatement(sql);
				ps.setInt(2, start.getId());
				ps.setInt(1, end.getId());
				rs=ps.executeQuery();
				while(rs.next()) {
					user=new User();
					user.setName(rs.getString("Name"));
					user.setId(rs.getInt("Id"));
		            user.setLine(rs.getInt("Line")) ;
		            user.setNum(rs.getInt("Num"));
		            user.setExchange(rs.getInt("Exchange"));
		            users.add(user);
				}
			}catch(SQLException e) {
				e.printStackTrace();
			}
		}
		
		
	}
	if(start.getLine()!=end.getLine())//不在一条线
	{
		System.out.println(start.getLine()+end.getLine());
		int mid=0;
		try {
			
			sql="select * from station where Line=? and Exchange=?";
			ps=conn.prepareStatement(sql);
			ps.setInt(1, start.getLine());
			ps.setInt(2, end.getLine());
			rs=ps.executeQuery();
			User Mid=new User();//找到中间值(在始发站那条线路上)
			if(rs.next())
			{
			Mid.setName(rs.getString("Name"));
			Mid.setId(rs.getInt("Id"));
            Mid.setLine(rs.getInt("Line")) ;
            Mid.setNum(rs.getInt("Num"));
            Mid.setExchange(rs.getInt("Exchange"));
			}
            sql="select * from station where Line=? and Exchange=?";  //找到在终点站那条线路上
			ps=conn.prepareStatement(sql);
			ps.setInt(2, start.getLine());
			ps.setInt(1, end.getLine());
			rs=ps.executeQuery();
			User Mid2=new User();
			if(rs.next())
			{
			Mid2.setName(rs.getString("Name"));
			Mid2.setId(rs.getInt("Id"));
            Mid2.setLine(rs.getInt("Line")) ;
            Mid2.setNum(rs.getInt("Num"));
            Mid2.setExchange(rs.getInt("Exchange"));
			}
            if(Mid.getId()>start.getId())//始发站->中转站
            {	
            	sql="select * from station where Id between ? and ? order by Id";
				ps=conn.prepareStatement(sql);
				ps.setInt(1, start.getId());
				ps.setInt(2, Mid.getId());
				rs=ps.executeQuery();
				while(rs.next()) {
				user=new User();
				user.setName(rs.getString("Name"));
				user.setId(rs.getInt("Id"));
	            user.setLine(rs.getInt("Line")) ;
	            user.setNum(rs.getInt("Num"));
	            user.setExchange(rs.getInt("Exchange"));
	            users.add(user);       
			}
				 if(Mid2.getId()>end.getId())//始发站->中转站	终点站->中转站
		            {
					 System.out.println("");
					 sql="select * from station where Id between ? and ? order by Id desc";
						ps=conn.prepareStatement(sql);
						ps.setInt(1, end.getId());
						ps.setInt(2, Mid2.getId()-1);
						rs=ps.executeQuery();
						while(rs.next()) {
						user=new User();
						user.setName(rs.getString("Name"));
						user.setId(rs.getInt("Id"));
			            user.setLine(rs.getInt("Line")) ;
			            user.setNum(rs.getInt("Num"));
			            user.setExchange(rs.getInt("Exchange"));
			            users.add(user);       
					}
		            }
				 else//始发站->中转站->终点站
				 {
					 sql="select * from station where Id between ? and ? order by Id ";
						ps=conn.prepareStatement(sql);
						ps.setInt(2, end.getId());
						ps.setInt(1, Mid2.getId()+1);
						rs=ps.executeQuery();
						while(rs.next()) {
						user=new User();
						user.setName(rs.getString("Name"));
						user.setId(rs.getInt("Id"));
			            user.setLine(rs.getInt("Line")) ;
			            user.setNum(rs.getInt("Num"));
			            user.setExchange(rs.getInt("Exchange"));
			            users.add(user);       
					}
				 }
				 
            }
            else//中转站<-始发站
            {	
            	
            	sql="select * from station where Id between ? and ? order by Id desc";
				ps=conn.prepareStatement(sql);
				ps.setInt(2, start.getId());
				ps.setInt(1, Mid.getId());
				rs=ps.executeQuery();
				while(rs.next()) {
				user=new User();
				user.setName(rs.getString("Name"));
				user.setId(rs.getInt("Id"));
	            user.setLine(rs.getInt("Line")) ;
	            user.setNum(rs.getInt("Num"));
	            user.setExchange(rs.getInt("Exchange"));
	            users.add(user);       
			}
				 if(Mid2.getId()>end.getId())//中转站<-始发站	终点站->中转站	
		            {
					 sql="select * from station where Id between ? and ? order by Id desc";
						ps=conn.prepareStatement(sql);
						ps.setInt(1, end.getId());
						ps.setInt(2, Mid2.getId()-1);
						rs=ps.executeQuery();
						while(rs.next()) {
						user=new User();
						user.setName(rs.getString("Name"));
						user.setId(rs.getInt("Id"));
			            user.setLine(rs.getInt("Line")) ;
			            user.setNum(rs.getInt("Num"));
			            user.setExchange(rs.getInt("Exchange"));
			            users.add(user);       
					}
		            }
				 else//中转站<-始发站	
				 {
					 sql="select * from station where Id between ? and ? order by Id ";
						ps=conn.prepareStatement(sql);
						ps.setInt(2, end.getId());
						ps.setInt(1, Mid2.getId()+1);
						rs=ps.executeQuery();
						while(rs.next()) {
						user=new User();
						user.setName(rs.getString("Name"));
						user.setId(rs.getInt("Id"));
			            user.setLine(rs.getInt("Line")) ;
			            user.setNum(rs.getInt("Num"));
			            user.setExchange(rs.getInt("Exchange"));
			            users.add(user);       
					}
				 }
				 
            }
            
            
            
            
            
            
            
            
            
            
		}catch(SQLException e) {
			e.printStackTrace();
		}
		
		
		
		
		
		
	}
	return users;
}

	//能返回站名,同时实现两个转战口,但是不能三条最近
	
	public List<User> Num3(String a,String b)
	{
	User start=new User();
	User end=new User();
	start=loadUser(a);
	end=loadUser(b);
	conn=ut.getConn();
	ps=null;
	ResultSet rs=null;
	String id;
	sql="select * from station where Id between ? and ? order by Id";
	List<User> users=new ArrayList<User>();
	List<User>	Mid1s=new ArrayList<User>();//做出一个始发站中转站点集
	List<User>	Mid2s=new ArrayList<User>();//做出一个终点站中转站点集
	User user=null;
	User Mid1=null;
	User Mid2=null;
	if(start.getLine()==end.getLine())//一条线
	{
		if(start.getId()<=end.getId())
		{
			try {
            	conn=ut.getConn();
		ps=conn.prepareStatement(sql);
		ps.setInt(1, start.getId());
		ps.setInt(2, end.getId());
		
		rs=ps.executeQuery();
		while(rs.next()) {
			user=new User();
			user.setName(rs.getString("Name"));
			user.setId(rs.getInt("Id"));
            user.setLine(rs.getInt("Line")) ;
            user.setNum(rs.getInt("Num"));
            user.setExchange(rs.getInt("Exchange"));
            users.add(user);
		}
	}catch(SQLException e) {
		e.printStackTrace();
	}
	}
		else
		{
			
			try {
				sql="select * from station where Id between ? and ? order by Id desc";
            	conn=ut.getConn();
				ps=conn.prepareStatement(sql);
				ps.setInt(2, start.getId());
				ps.setInt(1, end.getId());
				rs=ps.executeQuery();
				while(rs.next()) {
					user=new User();
					user.setName(rs.getString("Name"));
					user.setId(rs.getInt("Id"));
		            user.setLine(rs.getInt("Line")) ;
		            user.setNum(rs.getInt("Num"));
		            user.setExchange(rs.getInt("Exchange"));
		            users.add(user);
				}
			}catch(SQLException e) {
				e.printStackTrace();
			}
		}
		
		
	}
	if(start.getLine()!=end.getLine())//不在一条线
	{
		int mid=0;
		try {
			
			sql="select * from station where Line=? and Exchange=?";//始发站一条线
        	conn=ut.getConn();
			ps=conn.prepareStatement(sql);
			ps.setInt(1, start.getLine());
			ps.setInt(2, end.getLine());
			rs=ps.executeQuery();
			while(rs.next())
			{
			Mid1=new User();
			Mid1.setName(rs.getString("Name"));
			Mid1.setId(rs.getInt("Id"));
            Mid1.setLine(rs.getInt("Line")) ;
            Mid1.setNum(rs.getInt("Num"));
            Mid1.setExchange(rs.getInt("Exchange"));
            Mid1s.add(Mid1);
			}
            sql="select * from station where Line=? and Exchange=?";  //找到在终点站那条线路上
        	conn=ut.getConn();
			ps=conn.prepareStatement(sql);
			ps.setInt(2, start.getLine());
			ps.setInt(1, end.getLine());
			rs=ps.executeQuery();
			while(rs.next())
			{
				Mid2=new User();
			Mid2.setName(rs.getString("Name"));
			Mid2.setId(rs.getInt("Id"));
            Mid2.setLine(rs.getInt("Line")) ;
            Mid2.setNum(rs.getInt("Num"));
            Mid2.setExchange(rs.getInt("Exchange"));
            Mid2s.add(Mid2);
			}
			int min=100;//选出最近转战口
			int Min1=Mid1.getId();//最近转战口ID 与始发站相同
			int Min2=Mid2.getId();//与终点站相同
			for(User mid1:Mid1s)
			{
				for(User mid2:Mid2s)
				{
					if(mid1.getName().equals(mid2.getName()))
					{
						int n=Math.abs(mid1.getId()-start.getId())+Math.abs(mid2.getId()-end.getId());
						if(min>n)
						{
							min=n;
							Min1=mid1.getId();
							Min2=mid2.getId();
						}
					}
				}
				
			}
			System.out.println(Min1);
			User mid1=Select_Id(Min1);
			User mid2=Select_Id(Min2);
			System.out.println(mid2.getName()+"asdfasdfasdgasdgasdf"+mid1.getName());
			if(mid1.getId()>start.getId())//始发站->中转站
            {	
            	sql="select * from station where Id between ? and ? order by Id";
            	conn=ut.getConn();
				ps=conn.prepareStatement(sql);
				ps.setInt(1, start.getId());
				ps.setInt(2, mid1.getId());
				rs=ps.executeQuery();
				while(rs.next()) {
				user=new User();
				user.setName(rs.getString("Name"));
				user.setId(rs.getInt("Id"));
	            user.setLine(rs.getInt("Line")) ;
	            user.setNum(rs.getInt("Num"));
	            user.setExchange(rs.getInt("Exchange"));
	            users.add(user);       
			}
				 if(mid2.getId()>end.getId())//始发站->中转站	终点站->中转站
		            {
					 System.out.println("");
					 sql="select * from station where Id between ? and ? order by Id desc";
		            	conn=ut.getConn();
						ps=conn.prepareStatement(sql);
						ps.setInt(1, end.getId());
						ps.setInt(2, mid2.getId()-1);
						rs=ps.executeQuery();
						while(rs.next()) {
						user=new User();
						user.setName(rs.getString("Name"));
						user.setId(rs.getInt("Id"));
			            user.setLine(rs.getInt("Line")) ;
			            user.setNum(rs.getInt("Num"));
			            user.setExchange(rs.getInt("Exchange"));
			            users.add(user);       
					}
		            }
				 else//始发站->中转站->终点站
				 {
					 sql="select * from station where Id between ? and ? order by Id ";
		            	conn=ut.getConn();
						ps=conn.prepareStatement(sql);
						ps.setInt(2, end.getId());
						ps.setInt(1, mid2.getId()+1);
						rs=ps.executeQuery();
						while(rs.next()) {
						user=new User();
						user.setName(rs.getString("Name"));
						user.setId(rs.getInt("Id"));
			            user.setLine(rs.getInt("Line")) ;
			            user.setNum(rs.getInt("Num"));
			            user.setExchange(rs.getInt("Exchange"));
			            users.add(user);       
					}
				 }
				 
            }
            else//中转站<-始发站
            {	
            	
            	sql="select * from station where Id between ? and ? order by Id desc";
            	conn=ut.getConn();
				ps=conn.prepareStatement(sql);
				ps.setInt(2, start.getId());
				ps.setInt(1, mid1.getId());
				rs=ps.executeQuery();
				while(rs.next()) {
				user=new User();
				user.setName(rs.getString("Name"));
				user.setId(rs.getInt("Id"));
	            user.setLine(rs.getInt("Line")) ;
	            user.setNum(rs.getInt("Num"));
	            user.setExchange(rs.getInt("Exchange"));
	            users.add(user);       
			}
				 if(mid2.getId()>end.getId())//中转站<-始发站	终点站->中转站	
		            {
					 sql="select * from station where Id between ? and ? order by Id desc";
		            	conn=ut.getConn();
						ps=conn.prepareStatement(sql);
						ps.setInt(1, end.getId());
						ps.setInt(2, mid2.getId()-1);
						rs=ps.executeQuery();
						while(rs.next()) {
						user=new User();
						user.setName(rs.getString("Name"));
						user.setId(rs.getInt("Id"));
			            user.setLine(rs.getInt("Line")) ;
			            user.setNum(rs.getInt("Num"));
			            user.setExchange(rs.getInt("Exchange"));
			            users.add(user);       
					}
		            }
				 else//中转站<-始发站	
				 {
					 sql="select * from station where Id between ? and ? order by Id ";
		            	conn=ut.getConn();
						ps=conn.prepareStatement(sql);
						ps.setInt(2, end.getId());
						ps.setInt(1, mid2.getId()+1);
						rs=ps.executeQuery();
						while(rs.next()) {
						user=new User();
						user.setName(rs.getString("Name"));
						user.setId(rs.getInt("Id"));
			            user.setLine(rs.getInt("Line")) ;
			            user.setNum(rs.getInt("Num"));
			            user.setExchange(rs.getInt("Exchange"));
			            users.add(user);       
					}
				 }
				 
            }
            
   
            
            
            
            
            
            
		}catch(SQLException e) {
			e.printStackTrace();
		}
		
		
		
		
		
		
	}
	return users;
}

	public List<User>Num4(String a,String b)
	{
		User start=new User();
		User end=new User();
		start=loadUser(a);
		end=loadUser(b);
		conn=ut.getConn();
		ps=null;
		ResultSet rs=null;
		String id;
		sql="select * from station where Id between ? and ? order by Id";
		List<User> users=new ArrayList<User>();
		List<User>	Mid1s=new ArrayList<User>();//做出一个始发站中转站点集
		List<User>	Mid2s=new ArrayList<User>();//做出一个终点站中转站点集
		List<User>	Mid3s=new ArrayList<User>();//1在转战线上的位置
		List<User>	Mid4s=new ArrayList<User>();//2在转战上的位置
		User user=null;
		User Mid1=null;
		User Mid2=null;
		User Mid3=null;
		User Mid4=null;
		
		int Zhuan;//最近的转战是第几条线
		if(start.getLine()==end.getLine())//一条线
		{
			if(start.getId()<=end.getId())
			{
				try {
	            	conn=ut.getConn();
			ps=conn.prepareStatement(sql);
			ps.setInt(1, start.getId());
			ps.setInt(2, end.getId());
			
			rs=ps.executeQuery();
			while(rs.next()) {
				user=new User();
				user.setName(rs.getString("Name"));
				user.setId(rs.getInt("Id"));
	            user.setLine(rs.getInt("Line")) ;
	            user.setNum(rs.getInt("Num"));
	            user.setExchange(rs.getInt("Exchange"));
	            users.add(user);
			}
		}catch(SQLException e) {
			e.printStackTrace();
		}
		}
			else
			{
				
				try {
					sql="select * from station where Id between ? and ? order by Id desc";
	            	conn=ut.getConn();
					ps=conn.prepareStatement(sql);
					ps.setInt(2, start.getId());
					ps.setInt(1, end.getId());
					rs=ps.executeQuery();
					while(rs.next()) {
						user=new User();
						user.setName(rs.getString("Name"));
						user.setId(rs.getInt("Id"));
			            user.setLine(rs.getInt("Line")) ;
			            user.setNum(rs.getInt("Num"));
			            user.setExchange(rs.getInt("Exchange"));
			            users.add(user);
					}
				}catch(SQLException e) {
					e.printStackTrace();
				}
			}
			
			
		}
		if(start.getLine()!=end.getLine())//不在一条线
		{
			int mid=0;
			try {
				
				sql="select * from station where Line=? and Exchange !=?";//始发站一条线
	        	conn=ut.getConn();
				ps=conn.prepareStatement(sql);
				ps.setInt(1, start.getLine());
				ps.setInt(2, 0);
				rs=ps.executeQuery();
				while(rs.next())
				{
				Mid1=new User();
				Mid1.setName(rs.getString("Name"));
				Mid1.setId(rs.getInt("Id"));
	            Mid1.setLine(rs.getInt("Line")) ;
	            Mid1.setNum(rs.getInt("Num"));
	            Mid1.setExchange(rs.getInt("Exchange"));
	            Mid1s.add(Mid1);
				}
				for(User mid1:Mid1s)
				{
					sql="select * from station where Name=?";//同名 但是Id 不一样
		        	conn=ut.getConn();
					ps=conn.prepareStatement(sql);
					ps.setString(1, mid1.getName());
					rs=ps.executeQuery();
					while(rs.next())
					{
					Mid3=new User();
					Mid3.setName(rs.getString("Name"));
					Mid3.setId(rs.getInt("Id"));
		            Mid3.setLine(rs.getInt("Line")) ;
		            Mid3.setNum(rs.getInt("Num"));
		            Mid3.setExchange(rs.getInt("Exchange"));
		            if(Mid3.getId()!=mid1.getId())
		            {
		            	Mid3s.add(Mid3);
		            }
					}
				}
	            sql="select * from station where Line=? and Exchange !=?";  //找到在终点站那条线路上
	        	conn=ut.getConn();
				ps=conn.prepareStatement(sql);
				ps.setInt(2, start.getLine());
				ps.setInt(1, end.getLine());
				rs=ps.executeQuery();
				while(rs.next())
				{
				Mid2=new User();
				Mid2.setName(rs.getString("Name"));
				Mid2.setId(rs.getInt("Id"));
	            Mid2.setLine(rs.getInt("Line")) ;
	            Mid2.setNum(rs.getInt("Num"));
	            Mid2.setExchange(rs.getInt("Exchange"));
	            Mid2s.add(Mid2);
				}
				for(User mid2:Mid2s)
				{
					sql="select * from station where Name=?";//同名 但是Id 不一样
		        	conn=ut.getConn();
					ps=conn.prepareStatement(sql);
					ps.setString(1, mid2.getName());
					rs=ps.executeQuery();
					while(rs.next())
					{
					Mid4=new User();
					Mid4.setName(rs.getString("Name"));
					Mid4.setId(rs.getInt("Id"));
		            Mid4.setLine(rs.getInt("Line")) ;
		            Mid4.setNum(rs.getInt("Num"));
		            Mid4.setExchange(rs.getInt("Exchange"));
		            if(Mid4.getId()!=mid2.getId())
		            {
		            	Mid4s.add(Mid4);
		            }
					}
				}
				
				
				
				int min=100;//选出最近转战口
				int Min1=Mid1.getId();//最近转战口ID 与始发站相同
				int Min2=Mid2.getId();//与终点站相同
				int Min3=Mid3.getId();
				int Min4=Mid4.getId();
				for(User mid1:Mid1s)
				{
					for(User mid3:Mid3s)
					{
					for(User mid2:Mid2s)
					{
						for(User mid4:Mid4s)
						{
						if((mid1.getExchange()==mid2.getExchange())&&(mid3.getLine()==mid4.getLine())&&(mid1.getExchange()==mid3.getLine()))
						{
							
							int n=Math.abs(mid1.getId()-start.getId())+Math.abs(mid2.getId()-end.getId())+Math.abs(mid3.getId()-mid4.getId());
							if(min>n)
							{
								min=n;
								Min1=mid1.getId();
								Min2=mid2.getId();
								Min3=mid3.getId();
								Min4=mid4.getId();
							}
						}
						}
						
					}
					}
				}
				System.out.println(Min1);
				User mid1=Select_Id(Min1);
				User mid2=Select_Id(Min2);
				User mid3=Select_Id(Min3);
				User mid4=Select_Id(Min4);
				System.out.println(mid2.getName()+"asdfasdfasdgasdgasdf"+mid1.getName());
				if(mid1.getId()>start.getId())//始发站->中转站
	            {	
	            	sql="select * from station where Id between ? and ? order by Id";
	            	conn=ut.getConn();
					ps=conn.prepareStatement(sql);
					ps.setInt(1, start.getId());
					ps.setInt(2, mid1.getId());
					rs=ps.executeQuery();
					while(rs.next()) {
					user=new User();
					user.setName(rs.getString("Name"));
					user.setId(rs.getInt("Id"));
		            user.setLine(rs.getInt("Line")) ;
		            user.setNum(rs.getInt("Num"));
		            user.setExchange(rs.getInt("Exchange"));
		            users.add(user);       
				}
					if(mid3.getId()>mid4.getId())//3->4
					{
						sql="select * from station where Id between ? and ? order by Id desc";
		            	conn=ut.getConn();
						ps=conn.prepareStatement(sql);
						ps.setInt(1,mid4.getId());
						ps.setInt(2, mid3.getId());
						rs=ps.executeQuery();
						while(rs.next()) {
						user=new User();
						user.setName(rs.getString("Name"));
						user.setId(rs.getInt("Id"));
			            user.setLine(rs.getInt("Line")) ;
			            user.setNum(rs.getInt("Num"));
			            user.setExchange(rs.getInt("Exchange"));
			            users.add(user);       
					}
					}
					if(mid3.getId()<mid4.getId())//3->4
					{
						sql="select * from station where Id between ? and ? order by Id ";
		            	conn=ut.getConn();
						ps=conn.prepareStatement(sql);
						ps.setInt(1,mid3.getId());
						ps.setInt(2, mid4.getId());
						rs=ps.executeQuery();
						while(rs.next()) {
						user=new User();
						user.setName(rs.getString("Name"));
						user.setId(rs.getInt("Id"));
			            user.setLine(rs.getInt("Line")) ;
			            user.setNum(rs.getInt("Num"));
			            user.setExchange(rs.getInt("Exchange"));
			            users.add(user);       
					}
					}
					 if(mid2.getId()>end.getId())//始发站->中转站	终点站->中转站
			            {
						 System.out.println("");
						 sql="select * from station where Id between ? and ? order by Id desc";
			            	conn=ut.getConn();
							ps=conn.prepareStatement(sql);
							ps.setInt(1, end.getId());
							ps.setInt(2, mid2.getId()-1);
							rs=ps.executeQuery();
							while(rs.next()) {
							user=new User();
							user.setName(rs.getString("Name"));
							user.setId(rs.getInt("Id"));
				            user.setLine(rs.getInt("Line")) ;
				            user.setNum(rs.getInt("Num"));
				            user.setExchange(rs.getInt("Exchange"));
				            users.add(user);       
						}
			            }
					 else//始发站->中转站->终点站
					 {
						 sql="select * from station where Id between ? and ? order by Id ";
			            	conn=ut.getConn();
							ps=conn.prepareStatement(sql);
							ps.setInt(2, end.getId());
							ps.setInt(1, mid2.getId()+1);
							rs=ps.executeQuery();
							while(rs.next()) {
							user=new User();
							user.setName(rs.getString("Name"));
							user.setId(rs.getInt("Id"));
				            user.setLine(rs.getInt("Line")) ;
				            user.setNum(rs.getInt("Num"));
				            user.setExchange(rs.getInt("Exchange"));
				            users.add(user);       
						}
					 }
					 
	            }
	            else//中转站<-始发站
	            {	
	            	
	            	sql="select * from station where Id between ? and ? order by Id desc";
	            	conn=ut.getConn();
					ps=conn.prepareStatement(sql);
					ps.setInt(2, start.getId());
					ps.setInt(1, mid1.getId());
					rs=ps.executeQuery();
					while(rs.next()) {
					user=new User();
					user.setName(rs.getString("Name"));
					user.setId(rs.getInt("Id"));
		            user.setLine(rs.getInt("Line")) ;
		            user.setNum(rs.getInt("Num"));
		            user.setExchange(rs.getInt("Exchange"));
		            users.add(user);       
				}
					if(mid3.getId()>mid4.getId())//3->4
					{
						sql="select * from station where Id between ? and ? order by Id desc";
		            	conn=ut.getConn();
						ps=conn.prepareStatement(sql);
						ps.setInt(1,mid4.getId());
						ps.setInt(2, mid3.getId());
						rs=ps.executeQuery();
						while(rs.next()) {
						user=new User();
						user.setName(rs.getString("Name"));
						user.setId(rs.getInt("Id"));
			            user.setLine(rs.getInt("Line")) ;
			            user.setNum(rs.getInt("Num"));
			            user.setExchange(rs.getInt("Exchange"));
			            users.add(user);       
					}
					}
					if(mid3.getId()<mid4.getId())//3->4
					{
						sql="select * from station where Id between ? and ? order by Id ";
		            	conn=ut.getConn();
						ps=conn.prepareStatement(sql);
						ps.setInt(1,mid3.getId());
						ps.setInt(2, mid4.getId());
						rs=ps.executeQuery();
						while(rs.next()) {
						user=new User();
						user.setName(rs.getString("Name"));
						user.setId(rs.getInt("Id"));
			            user.setLine(rs.getInt("Line")) ;
			            user.setNum(rs.getInt("Num"));
			            user.setExchange(rs.getInt("Exchange"));
			            users.add(user);       
					}
					}
					
					 if(mid2.getId()>end.getId())//中转站<-始发站	终点站->中转站	
			            {
						 sql="select * from station where Id between ? and ? order by Id desc";
			            	conn=ut.getConn();
							ps=conn.prepareStatement(sql);
							ps.setInt(1, end.getId());
							ps.setInt(2, mid2.getId()-1);
							rs=ps.executeQuery();
							while(rs.next()) {
							user=new User();
							user.setName(rs.getString("Name"));
							user.setId(rs.getInt("Id"));
				            user.setLine(rs.getInt("Line")) ;
				            user.setNum(rs.getInt("Num"));
				            user.setExchange(rs.getInt("Exchange"));
				            users.add(user);       
						}
			            }
					 else//中转站<-始发站	
					 {
						 sql="select * from station where Id between ? and ? order by Id ";
			            	conn=ut.getConn();
							ps=conn.prepareStatement(sql);
							ps.setInt(2, end.getId());
							ps.setInt(1, mid2.getId()+1);
							rs=ps.executeQuery();
							while(rs.next()) {
							user=new User();
							user.setName(rs.getString("Name"));
							user.setId(rs.getInt("Id"));
				            user.setLine(rs.getInt("Line")) ;
				            user.setNum(rs.getInt("Num"));
				            user.setExchange(rs.getInt("Exchange"));
				            users.add(user);       
						}
					 }
					 
	            }
	            
	   
	            
	            
	            
	            
	            
	            
			}catch(SQLException e) {
				e.printStackTrace();
			}
			
			
			
			
			
			
		}
		return users;
	}
	
	public List<User>Num5(String a,String b)
	{
		int NN=0;
		User start=new User();
		User end=new User();
		start=loadUser(a);
		end=loadUser(b);
		conn=ut.getConn();
		ps=null;
		ResultSet rs=null;
		String id;
		sql="select * from station where Id between ? and ? order by Id";
		List<User> users=new ArrayList<User>();
		List<User>	Mid1s=new ArrayList<User>();//做出一个始发站中转站点集
		List<User>	Mid2s=new ArrayList<User>();//做出一个终点站中转站点集
		List<User>	Mid3s=new ArrayList<User>();//1在转战线上的位置
		List<User>	Mid4s=new ArrayList<User>();//2在转战上的位置
		User user=null;
		User Mid1=null;
		User Mid2=null;
		User Mid3=null;
		User Mid4=null;
		
		int Zhuan;//最近的转战是第几条线
		if(start.getLine()==end.getLine())//一条线
		{
			if(start.getId()<=end.getId())
			{
				try {
	            	conn=ut.getConn();
			ps=conn.prepareStatement(sql);
			ps.setInt(1, start.getId());
			ps.setInt(2, end.getId());
			
			rs=ps.executeQuery();
			while(rs.next()) {
				user=new User();
				user.setName(rs.getString("Name"));
				user.setId(rs.getInt("Id"));
	            user.setLine(rs.getInt("Line")) ;
	            user.setNum(rs.getInt("Num"));
	            user.setExchange(rs.getInt("Exchange"));
	            users.add(user);
			}
		}catch(SQLException e) {
			e.printStackTrace();
		}
		}
			else
			{
				
				try {
					sql="select * from station where Id between ? and ? order by Id desc";
	            	conn=ut.getConn();
					ps=conn.prepareStatement(sql);
					ps.setInt(2, start.getId());
					ps.setInt(1, end.getId());
					rs=ps.executeQuery();
					while(rs.next()) {
						user=new User();
						user.setName(rs.getString("Name"));
						user.setId(rs.getInt("Id"));
			            user.setLine(rs.getInt("Line")) ;
			            user.setNum(rs.getInt("Num"));
			            user.setExchange(rs.getInt("Exchange"));
			            users.add(user);
					}
				}catch(SQLException e) {
					e.printStackTrace();
				}
			}
			
			
		}
		if(start.getLine()!=end.getLine())//不在一条线
		{
			int mid=0;
			try {
				
				sql="select * from station where Line=? and Exchange !=?";//始发站一条线
	        	conn=ut.getConn();
				ps=conn.prepareStatement(sql);
				ps.setInt(1, start.getLine());
				ps.setInt(2, 0);
				rs=ps.executeQuery();
				while(rs.next())
				{
				Mid1=new User();
				Mid1.setName(rs.getString("Name"));
				Mid1.setId(rs.getInt("Id"));
	            Mid1.setLine(rs.getInt("Line")) ;
	            Mid1.setNum(rs.getInt("Num"));
	            Mid1.setExchange(rs.getInt("Exchange"));
	            Mid1s.add(Mid1);
				}
				for(User mid1:Mid1s)
				{
					sql="select * from station where Name=?";//同名 但是Id 不一样
		        	conn=ut.getConn();
					ps=conn.prepareStatement(sql);
					ps.setString(1, mid1.getName());
					rs=ps.executeQuery();
					while(rs.next())
					{
					Mid3=new User();
					Mid3.setName(rs.getString("Name"));
					Mid3.setId(rs.getInt("Id"));
		            Mid3.setLine(rs.getInt("Line")) ;
		            Mid3.setNum(rs.getInt("Num"));
		            Mid3.setExchange(rs.getInt("Exchange"));
		            if(Mid3.getId()!=mid1.getId())
		            {
		            	Mid3s.add(Mid3);
		            }
					}
				}
	            sql="select * from station where Line=? and Exchange !=?";  //找到在终点站那条线路上
	        	conn=ut.getConn();
				ps=conn.prepareStatement(sql);
				ps.setInt(2, start.getLine());
				ps.setInt(1, end.getLine());
				rs=ps.executeQuery();
				while(rs.next())
				{
				Mid2=new User();
				Mid2.setName(rs.getString("Name"));
				Mid2.setId(rs.getInt("Id"));
	            Mid2.setLine(rs.getInt("Line")) ;
	            Mid2.setNum(rs.getInt("Num"));
	            Mid2.setExchange(rs.getInt("Exchange"));
	            Mid2s.add(Mid2);
				}
				for(User mid2:Mid2s)
				{
					sql="select * from station where Name=?";//同名 但是Id 不一样
		        	conn=ut.getConn();
					ps=conn.prepareStatement(sql);
					ps.setString(1, mid2.getName());
					rs=ps.executeQuery();
					while(rs.next())
					{
					Mid4=new User();
					Mid4.setName(rs.getString("Name"));
					Mid4.setId(rs.getInt("Id"));
		            Mid4.setLine(rs.getInt("Line")) ;
		            Mid4.setNum(rs.getInt("Num"));
		            Mid4.setExchange(rs.getInt("Exchange"));
		            if(Mid4.getId()!=mid2.getId())
		            {
		            	Mid4s.add(Mid4);
		            }
					}
				}
				
				
				
				int min=100;//选出最近转战口
				int Min1=Mid1.getId();//最近转战口ID 与始发站相同
				int Min2=Mid2.getId();//与终点站相同
				int Min3=Mid3.getId();
				int Min4=Mid4.getId();
				for(User mid1:Mid1s)
				{
					for(User mid3:Mid3s)
					{
					for(User mid2:Mid2s)
					{
						for(User mid4:Mid4s)
						{
						if((mid1.getExchange()==mid2.getExchange())&&(mid3.getLine()==mid4.getLine())&&(mid1.getExchange()==mid3.getLine()))
						{
							
							int n=Math.abs(mid1.getId()-start.getId())+Math.abs(mid2.getId()-end.getId())+Math.abs(mid3.getId()-mid4.getId());
							if(min>n)
							{
								min=n;
								Min1=mid1.getId();
								Min2=mid2.getId();
								Min3=mid3.getId();
								Min4=mid4.getId();
							}
						}
						}
						
					}
					}
				}
				System.out.println(Min1);
				User mid1=Select_Id(Min1);
				User mid2=Select_Id(Min2);
				User mid3=Select_Id(Min3);
				User mid4=Select_Id(Min4);
				System.out.println(mid2.getName()+"asdfasdfasdgasdgasdf"+mid1.getName());
				if(mid1.getId()>start.getId())//始发站->中转站
	            {	
	            	sql="select * from station where Id between ? and ? order by Id";
	            	conn=ut.getConn();
					ps=conn.prepareStatement(sql);
					ps.setInt(1, start.getId());
					ps.setInt(2, mid1.getId());
					rs=ps.executeQuery();
					while(rs.next()) {
					NN=NN+1;
					user=new User();
					user.setName(rs.getString("Name"));
					user.setId(rs.getInt("Id"));
		            user.setLine(rs.getInt("Line")) ;
		            user.setNum(rs.getInt("Num"));
		            user.setExchange(rs.getInt("Exchange"));
		            users.add(user);       
				}
					if(mid3.getId()>mid4.getId())//3->4
					{
						sql="select * from station where Id between ? and ? order by Id desc";
		            	conn=ut.getConn();
						ps=conn.prepareStatement(sql);
						ps.setInt(1,mid4.getId());
						ps.setInt(2, mid3.getId()-1);/
						rs=ps.executeQuery();
						while(rs.next()) {
							NN=NN+1;
						user=new User();
						user.setName(rs.getString("Name"));
						user.setId(rs.getInt("Id"));
			            user.setLine(rs.getInt("Line")) ;
			            user.setNum(rs.getInt("Num"));
			            user.setExchange(rs.getInt("Exchange"));
			            users.add(user);       
					}
					}
					if(mid3.getId()<mid4.getId())//3->4
					{
						sql="select * from station where Id between ? and ? order by Id ";
		            	conn=ut.getConn();
						ps=conn.prepareStatement(sql);
						ps.setInt(1,mid3.getId()+1);
						ps.setInt(2, mid4.getId());
						rs=ps.executeQuery();
						while(rs.next()) {
							NN=NN+1;
						user=new User();
						user.setName(rs.getString("Name"));
						user.setId(rs.getInt("Id"));
			            user.setLine(rs.getInt("Line")) ;
			            user.setNum(rs.getInt("Num"));
			            user.setExchange(rs.getInt("Exchange"));
			            users.add(user);       
					}
					}
					 if(mid2.getId()>end.getId())//始发站->中转站	终点站->中转站
			            {
						 System.out.println("");
						 sql="select * from station where Id between ? and ? order by Id desc";
			            	conn=ut.getConn();
							ps=conn.prepareStatement(sql);
							ps.setInt(1, end.getId());
							ps.setInt(2, mid2.getId()-1);
							rs=ps.executeQuery();
							while(rs.next()) {
								NN=NN+1;
							user=new User();
							user.setName(rs.getString("Name"));
							user.setId(rs.getInt("Id"));
				            user.setLine(rs.getInt("Line")) ;
				            user.setNum(rs.getInt("Num"));
				            user.setExchange(rs.getInt("Exchange"));
				            users.add(user);       
						}
			            }
					 else//始发站->中转站->终点站
					 {
						 sql="select * from station where Id between ? and ? order by Id ";
			            	conn=ut.getConn();
							ps=conn.prepareStatement(sql);
							ps.setInt(2, end.getId());
							ps.setInt(1, mid2.getId()+1);
							rs=ps.executeQuery();
							while(rs.next()) {
								NN=NN+1;
							user=new User();
							user.setName(rs.getString("Name"));
							user.setId(rs.getInt("Id"));
				            user.setLine(rs.getInt("Line")) ;
				            user.setNum(rs.getInt("Num"));
				            user.setExchange(rs.getInt("Exchange"));
				            users.add(user);       
						}
					 }
					 
	            }
	            else//中转站<-始发站
	            {	
	            	
	            	sql="select * from station where Id between ? and ? order by Id desc";
	            	conn=ut.getConn();
					ps=conn.prepareStatement(sql);
					ps.setInt(2, start.getId());
					ps.setInt(1, mid1.getId());
					rs=ps.executeQuery();
					while(rs.next()) {
						NN=NN+1;
					user=new User();
					user.setName(rs.getString("Name"));
					user.setId(rs.getInt("Id"));
		            user.setLine(rs.getInt("Line")) ;
		            user.setNum(rs.getInt("Num"));
		            user.setExchange(rs.getInt("Exchange"));
		            users.add(user);       
				}
					if(mid3.getId()>mid4.getId())//3->4
					{
						sql="select * from station where Id between ? and ? order by Id desc";
		            	conn=ut.getConn();
						ps=conn.prepareStatement(sql);
						ps.setInt(1,mid4.getId());
						ps.setInt(2, mid3.getId()-1);
						rs=ps.executeQuery();
						while(rs.next()) {
							NN=NN+1;
						user=new User();
						user.setName(rs.getString("Name"));
						user.setId(rs.getInt("Id"));
			            user.setLine(rs.getInt("Line")) ;
			            user.setNum(rs.getInt("Num"));
			            user.setExchange(rs.getInt("Exchange"));
			            users.add(user);       
					}
					}
					if(mid3.getId()<mid4.getId())//3->4
					{
						sql="select * from station where Id between ? and ? order by Id ";
		            	conn=ut.getConn();
						ps=conn.prepareStatement(sql);
						ps.setInt(1,mid3.getId()+1);
						ps.setInt(2, mid4.getId());
						rs=ps.executeQuery();
						while(rs.next()) {
							NN=NN+1;
						user=new User();
						user.setName(rs.getString("Name"));
						user.setId(rs.getInt("Id"));
			            user.setLine(rs.getInt("Line")) ;
			            user.setNum(rs.getInt("Num"));
			            user.setExchange(rs.getInt("Exchange"));
			            users.add(user);       
					}
					}
					
					 if(mid2.getId()>end.getId())//中转站<-始发站	终点站->中转站	
			            {
						 sql="select * from station where Id between ? and ? order by Id desc";
			            	conn=ut.getConn();
							ps=conn.prepareStatement(sql);
							ps.setInt(1, end.getId());
							ps.setInt(2, mid2.getId()-1);
							rs=ps.executeQuery();
							while(rs.next()) {
								NN=NN+1;
							user=new User();
							user.setName(rs.getString("Name"));
							user.setId(rs.getInt("Id"));
				            user.setLine(rs.getInt("Line")) ;
				            user.setNum(rs.getInt("Num"));
				            user.setExchange(rs.getInt("Exchange"));
				            users.add(user);       
						}
			            }
					 else//中转站<-始发站	
					 {
						 sql="select * from station where Id between ? and ? order by Id ";
			            	conn=ut.getConn();
							ps=conn.prepareStatement(sql);
							ps.setInt(2, end.getId());
							ps.setInt(1, mid2.getId()+1);
							rs=ps.executeQuery();
							while(rs.next()) {
								NN=NN+1;
							user=new User();
							user.setName(rs.getString("Name"));
							user.setId(rs.getInt("Id"));
				            user.setLine(rs.getInt("Line")) ;
				            user.setNum(rs.getInt("Num"));
				            user.setExchange(rs.getInt("Exchange"));
				            users.add(user);       
						}
					 }
					 
	            }
	            
	   
	            
	            
	            
	            
	            
	            
			}catch(SQLException e) {
				e.printStackTrace();
			}
			
			
			
			
			
			
		}
		System.out.println("aadfasdfsdaf"+NN+"adsfads"+Num1(a,b));
		if(NN>Num1(a,b))
		{
			return Num3(a,b);
		}
		else
			{
			return users;
			}
	}



}

  

package com.demo;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class main {
	public static void main(String[] args) {
		LoginerDaolmpl loginerDaoImpl=new LoginerDaolmpl();
		List<User> users = new ArrayList<User>();
		System.out.println("查询");
//		users=loginerDaoImpl.load();
//		
//		for(User u:users) {
//			System.out.println(u.getName());
//		}
		Scanner scan=new Scanner(System.in);
		String a=scan.next();
		String b=scan.next();
		
//		users=loginerDaoImpl.Num2(a, b);
//		users=loginerDaoImpl.Num3(a, b);
//		users=loginerDaoImpl.Num4(a, b);
		users=loginerDaoImpl.Num5(a, b);
		for(User u:users) {
			System.out.println(u.getId());
			System.out.println(u.getName());
		}
		System.out.println(loginerDaoImpl.Num1(a, b));
	}
}

  

package com.demo;
import java.sql.Connection;
public class User {
	private int Id;
	private int Line;
	private String Name;
	private int Num;
	private int Exchange;
	
	public int getId() {
		return Id;
	}
	public void setId(int id) {
		Id = id;
	}
	public int getLine() {
		return Line;
	}
	public void setLine(int line) {
		Line = line;
	}
	public String getName() {
		return Name;
	}
	public void setName(String name) {
		Name = name;
	}
	public int getNum() {
		return Num;
	}
	public void setNum(int num) {
		Num = num;
	}
	public int getExchange() {
		return Exchange;
	}
	public void setExchange(int exchange) {
		Exchange = exchange;
	}
	public User(int id,int line ,String name,int num,int exchange) {
		this.Name = name;
		this.Id=id;
		this.Line=line;
		this.Num=num;
		this.Exchange=exchange;
	}
	public User() {
		// TODO Auto-generated constructor stub
	}
}

  

package util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class util {
    public static Connection getMysqlConn()//获取连接,返回Connection类型,必须设置为static这样才能在其他类中使用
    {
        Connection conn=null;
        try
        {
            Class.forName("com.mysql.jdbc.Driver");//加载驱动
            System.out.println("Success loading Mysql Driver!");
            conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/sjzsubway?useUnicode=true&characterEncoding=utf-8","root","980713");//连接数据库
        }
        catch(Exception e)
        {
        	System.out.println("Error");
            e.printStackTrace();
        }
        return conn;
    }
    public static void close(PreparedStatement ps,Connection conn)//关闭函数
    {
        if(ps!=null)//只有状态和连接时,先关闭状态 
        {
            try
            {
                ps.close();
            }
            catch(SQLException e)
            {
                e.printStackTrace();
            }
        }
        if(conn!=null)
        {
            try
            {
                conn.close();
            }
            catch(SQLException e)
            {
                 e.printStackTrace();
            }
        }
    }
    public static void close(ResultSet rs,PreparedStatement ps,Connection conn)
    {
        if(rs!=null)//有结果集,状态和连接时,先关闭结果集,在关闭状态,在关闭连接
        {
            try
            {
                rs.close();
            }
            catch(SQLException e)
            {
                e.printStackTrace();
            }
        }
        if(ps!=null)
            
        {
            try
            {
                ps.close();
            }
            catch(SQLException e)
            {
                e.printStackTrace();
            }
        }
        if(conn!=null)
        {
            try
            {
                conn.close();
            }
            catch(SQLException e)
            {
                e.printStackTrace();
            }
        }
    }
}

  

package DJSTL;
import util.util;

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

public class DataBuilder {
	static Connection conn;
    static PreparedStatement ps = null;
    static ResultSet rs;
    static String sql = "select * from station";   //连接数据库
    static util ut= new util();
	static Scanner in = new Scanner(System.in);
	static String station_name;
	
	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>();//10号线
	public static List<Station> line5 = new ArrayList<Station>();//s1号线
	public static List<Station> line6 = new ArrayList<Station>();//s8号线
	public static Set<List<Station>> lineSet = new HashSet<List<Station>>();//所有线集合
	public static int totalStaion = 0;//总的站点数量
	static {		
		String[] line1Arr=new String[29];
		String[] line2Arr=new String[37];
		String[] line3Arr=new String[34];
		String[] line4Arr=new String[18];
		String[] line5Arr=new String[21];
		String[] line6Arr=new String[19];
		//1号线
		
		try {
			conn=ut.getConn();
			ps=null;
			ResultSet rs=null;
			sql="select * from station where Line=?";
			ps=conn.prepareStatement(sql);
			ps.setInt(1, 1);
			rs=ps.executeQuery();
			int i=-1;
				while(rs.next()) 
				{
					
					i++;	
					station_name=rs.getString("Name");
					line1Arr[i]=station_name;
//					System.out.println(station_name);
					
				}
			
			}
			catch(SQLException e) 
			{
				e.printStackTrace();
			}
			finally 
			{
				try 
				{
					 if(ps!=null)ps.close();
					 if(conn!=null)conn.close();
				}
				catch(Exception e2) 
				{
					 e2.printStackTrace();
				}
			}
		try {
			conn=ut.getConn();
			ps=null;
			ResultSet rs=null;
			sql="select * from station where Line=?";
			ps=conn.prepareStatement(sql);
			ps.setInt(1, 2);
			rs=ps.executeQuery();
			int i=-1;
				while(rs.next()) 
				{
					
					i++;	
					station_name=rs.getString("Name");
					line2Arr[i]=station_name;
//					System.out.println(station_name);
					
				}
			}
			catch(SQLException e) 
			{
				e.printStackTrace();
			}
			finally 
			{
				try 
				{
					 if(ps!=null)ps.close();
					 if(conn!=null)conn.close();
				}
				catch(Exception e2) 
				{
					 e2.printStackTrace();
				}
			}
		try {
			conn=ut.getConn();
			ps=null;
			ResultSet rs=null;
			sql="select * from station where Line=?";
			ps=conn.prepareStatement(sql);
			ps.setInt(1,3);
			rs=ps.executeQuery();
			int i=-1;
				while(rs.next()) 
				{
					
					i++;	
					station_name=rs.getString("Name");
					line3Arr[i]=station_name;
//					System.out.println(station_name);
					
				}
			}
			catch(SQLException e) 
			{
				e.printStackTrace();
			}
			finally 
			{
				try 
				{
					 if(ps!=null)ps.close();
					 if(conn!=null)conn.close();
				}
				catch(Exception e2) 
				{
					 e2.printStackTrace();
				}
			}
		try {
			conn=ut.getConn();
			ps=null;
			ResultSet rs=null;
			sql="select * from station where Line=?";
			ps=conn.prepareStatement(sql);
			ps.setInt(1, 4);
			rs=ps.executeQuery();
			int i=-1;
				while(rs.next()) 
				{
					
					i++;	
					station_name=rs.getString("Name");
					line4Arr[i]=station_name;
//					System.out.println(station_name);
					
				}
			}
			catch(SQLException e) 
			{
				e.printStackTrace();
			}
			finally 
			{
				try 
				{
					 if(ps!=null)ps.close();
					 if(conn!=null)conn.close();
				}
				catch(Exception e2) 
				{
					 e2.printStackTrace();
				}
			}
		try {
			conn=ut.getConn();
			ps=null;
			ResultSet rs=null;
			sql="select * from station where Line=?";
			ps=conn.prepareStatement(sql);
			ps.setInt(1, 5);
			rs=ps.executeQuery();
			int i=-1;
				while(rs.next()) 
				{
					
					i++;	
					station_name=rs.getString("Name");
					line5Arr[i]=station_name;
//					System.out.println(station_name);
					
				}
			}
			catch(SQLException e) 
			{
				e.printStackTrace();
			}
			finally 
			{
				try 
				{
					 if(ps!=null)ps.close();
					 if(conn!=null)conn.close();
				}
				catch(Exception e2) 
				{
					 e2.printStackTrace();
				}
			}
		try {
			conn=ut.getConn();
			ps=null;
			ResultSet rs=null;
			sql="select * from station where Line=?";
			ps=conn.prepareStatement(sql);
			ps.setInt(1, 6);
			rs=ps.executeQuery();
			int i=-1;
				while(rs.next()) 
				{
					
					i++;	
					station_name=rs.getString("Name");
					line6Arr[i]=station_name;
//					System.out.println(station_name);
					
				}
			}
			catch(SQLException e) 
			{
				e.printStackTrace();
			}
			finally 
			{
				try 
				{
					 if(ps!=null)ps.close();
					 if(conn!=null)conn.close();
				}
				catch(Exception e2) 
				{
					 e2.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号线
		
		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号线
		
		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号线
		
		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号线
		
		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);
			}
		}
		
		/*******************************************************************************/		
		//6号线
		
		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);
	}
}

  

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="com.demo.LoginerDaolmpl"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="Shu_result.jsp" method="post" id="form">
<h4>  始发站:<input type="text" name="start"title="课程不能为空"></input><br></h4>
<h4>  终点站:<input type="text" name="end"title="课程不能为空"></input><br></h4>

<input type="submit" value="完成"/>

</form>
</body>
</html>

  

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="com.demo.LoginerDaolmpl"%>
    <%@page import="com.demo.User" %>
    <%@page import="java.util.List" %>
    <%@page import="java.util.ArrayList" %>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<%
request.setCharacterEncoding("utf-8");
LoginerDaolmpl loginerDaoImpl=new LoginerDaolmpl();
List<User> users = new ArrayList<User>();
String a=request.getParameter("start");
String b=request.getParameter("end");
User user=new User();
users=loginerDaoImpl.Num5(a,b);
%>
<body>
	<table>
		<tr>
			<td>Id</td>
			<td>站名</td>	
		</tr>
		<%for(User u:users) { %>
		<tr>
			<td><%=u.getId() %></td>
			<td><%=u.getName() %></td>	
		</tr>
		<%} %>
	</table>
**********************<br>
<input type="button" value="返回功能界面" οnclick="window.location.href='success.jsp';"/><br>
**********************<br>
</body>
</html>

  

转载于:https://www.cnblogs.com/cuijunfeng/p/10663472.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值