zoukankan      html  css  js  c++  java
  • 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="返回功能界面" onclick="window.location.href='success.jsp';"/><br>
    **********************<br>
    </body>
    </html>
    

      

  • 相关阅读:
    hdu 1715
    hdu 1370
    hdu 2370
    hdu 1393
    hdu 1564
    hdu 1720
    hdu 1342
    SQL技巧(sp_procedure_params_rowset,SQL中设置数据值为null)
    Control ‘dg’ of type 'GridView' must be placed inside a form tag with runat=server
    GridView事件中获取rowIndex值
  • 原文地址:https://www.cnblogs.com/cuijunfeng/p/10663472.html
Copyright © 2011-2022 走看看