⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hb.java

📁 JAVA邮件系统
💻 JAVA
字号:
/**
*
* Hb.java
*
*/

import java.io.*;
import java.sql.*;

/*

 @author Liyan

*/

public class Hb
{
	//航班基本信息:
	//航班计划的基本信息:
	//依次为:航班号、机型代码、起飞机场、起飞时间、落地机场、落地时间、执行日期,查询时间(按星期)。
	String sHbh="",sJxdm;
	String[] sQfjc,sQfsj,sLdjc,sLdsj;
	String sZxrq,sWeek;
	
	//航空公司名称:
	String sCompany;

	
	//符合条件的航班号、机型代码、起飞时间、落地时间、执行日期
	String[] sHbhArray,sJxdmArray,sQfsjArray,sLdsjArray,sZxrqArray;
	
	//数据库要用到的变量:
	String sSql="";
	DBOperater DB;
	ResultSet rs;
	
	//其它基本变量:
	int nMaxLength=10,nLineLength=0,nHbhLength=0;
	
	//String[] sTmp=new String[nMaxLength];
	
		
	Hb()
	{
		//构造函数
		//一些初始化的过程
		sQfjc = new String[nMaxLength];
		sQfsj = new String[nMaxLength];
		sLdjc = new String[nMaxLength];
		sLdsj = new String[nMaxLength];
	}
	
	Hb(int nMaxLength)
	{
		if(nMaxLength>5&&nMaxLength<20)
			this.nMaxLength=nMaxLength;
		sQfjc = new String[nMaxLength];
		sQfsj = new String[nMaxLength];
		sLdjc = new String[nMaxLength];
		sLdsj = new String[nMaxLength];
	}
	

//航班计划:按航班号查询班期
	public String[] JhZxrqQuery(String sHbh)
	{
		this.sHbh=sHbh;
		sSql="SELECT DISTINCT zxrq FROM hbjh WHERE hbh ='"+sHbh+"'";
		DBOperater DB2 = new DBOperater("Hb");
		ResultSet rs2 = DB2.executeQuery(sSql);
		if(rs2==null){
			DB2.close();
			return null;
		}
		String[] sTmp = new String[10];
		int nTmp=0;
		try
		{
			while(rs2.next()){
				sTmp[nTmp]=rs2.getString(1);
				nTmp++;
			}
		}catch(Exception ex){
			DB2.close();
			return null;
		}
		DB2.close();
		String[] sTmp2 = new String[nTmp];
		for(int i=0;i<nTmp;i++){
			sTmp2[i]=sTmp[i];
		}
		return sTmp2;
	}
	
	
//航班计划:按航班号查询航班情况
	public boolean JhHbhQuery(String sHbh, String sWeek)
	{
		this.sHbh=sHbh;
		this.sWeek=sWeek;
	//把起飞落地情况依次放入数组:
		nLineLength = 0;
		
		//寻找航班起点:
		sSql="SELECT jxdm,qfjc,qfsj,ldsj,ldjc FROM hbjh WHERE hbh ='"+sHbh+"' AND zxrq like '%"+sWeek+"%' ";
		sSql+="AND qfjc NOT IN (SELECT ldjc FROM hbjh WHERE hbh ='"+sHbh+"' AND zxrq like '%"+sWeek+"%')";
		
		DB = new DBOperater("Hb");
		rs = DB.executeQuery(sSql);
		if(rs==null){
			DB.close();
			nLineLength=0;
			return false;
		}
		try
		{
			if(rs.next()){
				sJxdm=rs.getString(1);
				sQfjc[0]=rs.getString(2);
				sQfsj[0]=rs.getString(3);
				sLdsj[0]=rs.getString(4);
				sLdjc[0]=rs.getString(5);
			}else{
				DB.close();
				nLineLength=0;
				return false;
			}
		}catch(Exception ex){
			DB.close();
			nLineLength=0;
			return false;
		}
		DB.close();
		
		
		//寻找中间点:
		String Condition="And qfjc<>'"+sQfjc[0]+"'";
		for(int i=1;i<nMaxLength;i++){
			
			sSql="SELECT qfjc,qfsj,ldjc FROM hbjh WHERE hbh ='"+sHbh+"' AND zxrq like '%"+sWeek+"%' "+Condition;
			sSql+="AND qfjc NOT IN (SELECT ldjc FROM hbjh WHERE hbh ='"+sHbh+"' AND zxrq like '%"+sWeek+"%'"+Condition+")" ;
			
			DB = new DBOperater("Hb");
			rs = DB.executeQuery(sSql);
			if(rs==null){
				DB.close();
				nLineLength=0;
				return false;
			}
			try
			{
				if(rs.next()){
					sQfjc[i]=sLdjc[i-1]=rs.getString(1);
					sQfsj[i]=rs.getString(2);
					sLdjc[i]=rs.getString(3);
				}else{
					DB.close();
					break;
				}
			}catch(Exception ex){
				DB.close();
				nLineLength=0;
				return false;
			}
			DB.close();
			nLineLength++;
			Condition+=" And qfjc<>'"+sQfjc[i]+"'";
		}
		//获得落地时间:
		for(int i=0;i<=nLineLength;i++)
		{
			sSql="SELECT ldsj FROM hbjh WHERE hbh ='"+sHbh+"' AND zxrq like '%"+sWeek+"%' ";
			sSql+="AND ldjc='"+sLdjc[i]+"'";
			
			DB = new DBOperater("Hb");
			rs = DB.executeQuery(sSql);
			if(rs==null){
				DB.close();
				nLineLength=0;
				return false;
			}
			try
			{
				if(rs.next()){
					sLdsj[i]=rs.getString(1);
				}else{
					DB.close();
					break;
				}
			}catch(Exception ex){
				DB.close();
				nLineLength=0;
				return false;
			}
			DB.close();
		}
		
		nLineLength++;
		return true;
	}
	
//航班计划:按航空公司查询航班:
	public String[] getHbJhCompany(String sCompany)
	{
		if(sCompany==null){
			return null;
		}
		sSql="Select distinct hbh From hbjh Where hbh like '"+sCompany+"%'";
		DBOperater DB2 = new DBOperater("Hb");
		ResultSet rs2 = DB2.executeQuery(sSql);
		if(rs2==null){
			DB2.close();
			return null;
		}
		String[] sTmpArray1 = new String[2000];
		int nTmp=0;
		try
		{
			while(rs2.next()){
				sTmpArray1[nTmp]=rs2.getString(1);
				nTmp++;
			}
		}catch(Exception ex){
			DB2.close();
			return null;
		}
		DB2.close();
		String[] sTmpArray2= new String[nTmp];
		for(int i=0;i<nTmp;i++){
			sTmpArray2[i] = sTmpArray1[i];
		}
		return sTmpArray2;
	}
	
	//把四字代码转换成中文地名
	public String szdmToZwqc(String sSzdm)
	{
		if(sSzdm!=null){
			sSql="SELECT zwqc FROM dmdm WHERE szdm='"+sSzdm+"'";
			DB = new DBOperater("hb");
			rs = DB.executeQuery(sSql);
			try
			{
				if(rs.next()){
					String sZwqc=rs.getString(1);
					if(sZwqc.trim().compareTo("")==0){
						DB.close();
						return "中文全称未录入!";
					}
					else{
						DB.close();
						return sZwqc;
					}
				}else{
					DB.close();
					return "四字代码未找到!";
				}
			}catch(Exception ex){
				DB.close();
			}
			return "sSzdm为空!";
		}
		return null;
	}
	
	
	//把中文地名转换成四字代码
	public String zwqcToSzdm(String sZwqc)
	{
		if(sZwqc!=null){
			sSql="SELECT szdm FROM dmdm WHERE zwqc like'%"+sZwqc.trim()+"%'";
			DBOperater DB2 = new DBOperater("hb");
			ResultSet rs2 = DB2.executeQuery(sSql);
			try
			{
				if(rs2.next()){
					String sSzdm=rs2.getString(1);
					if(sSzdm.trim().compareTo("")==0){
						DB2.close();
						return "未找到"+sZwqc+"的四字代码!";
					}
					else{
						DB2.close();
						return sSzdm;
					}
				}else{
					DB2.close();
					return "中文名称未找到!";
				}
			}catch(Exception ex){
				DB2.close();
			}
			return "sZwqc为空!";
		}
		return "未输入";
	}
	
	
	//把四位数字表示为时间
	//XXXX变成XX:XX
	public String nemberToTime(String sNember)
	{
		if(sNember!=null){
			if(sNember.length()==4){
				String sTime=sNember.substring(0,2);
				sTime+=":";
				sTime+=sNember.substring(2,4);
				return sTime;
			}
			return "要转换的数字不是四位!";
		}
		return "要转换的数字为空!";
	}
	
	
	//获得航空公司名称:
	public String getCompanyName()
	{
		sSql="SELECT zwqc from gsdm where ezdm='"+sHbh.substring(0,2)+"'";
		DB = new DBOperater("hb");
		rs = DB.executeQuery(sSql);
		try
		{
			if(rs.next()){
				String sZwqc = rs.getString(1);
				if(sZwqc.trim().compareTo("")==0){
					DB.close();
					return "公司名称为空!";
				}
				DB.close();
				return sZwqc;
			}else{
				DB.close();
				return "无法获得公司名称";
			}
		}catch(Exception ex){
			DB.close();
			return "获得公司名称出错";
		}
	}
	
	public String getCompanyName(String sHbh)
	{
		if(sHbh.length()<2)
			return "无法获得公司名称!";
		sSql="SELECT zwqc from gsdm where ezdm='"+sHbh.substring(0,2)+"'";
		DB = new DBOperater("hb");
		rs = DB.executeQuery(sSql);
		try
		{
			if(rs.next()){
				String sZwqc = rs.getString(1);
				if(sZwqc.trim().compareTo("")==0){
					DB.close();
					return "公司名称为空!";
				}
				DB.close();
				return sZwqc;
			}else{
				DB.close();
				return "无法获得公司名称";
			}
		}catch(Exception ex){
			DB.close();
			return "获得公司名称出错";
		}
	}
	
	
	//航线查询:获得航班号
	//输入:起飞地名、落地地名、日期
	public boolean jhLineQuery(String sQfdm,String sLddm,String sDate)
	{
		DB = new DBOperater("hb");
		//sSql = "SELECT distinct hbh , qfsj ,ldsj FROM hbjh WHERE qfjc='"+sQfdm+"' AND ldjc='"+sLddm;
		//sSql+="' AND zxrq LIKE '%"+sDate.trim()+"%'";
		sSql = "SELECT hbh ,jxdm, qfsj ,ldsj,zxrq FROM hbjh WHERE qfjc='"+this.zwqcToSzdm(sQfdm)+"' AND ldjc='"+this.zwqcToSzdm(sLddm);
		sSql+="' AND zxrq LIKE '%"+sDate.trim()+"%' order by hbh";
		rs = DB.executeQuery(sSql);
		int nMax=100;
		sHbhArray = new String[nMax];
		sJxdmArray = new String[nMax];
		sQfsjArray = new String[nMax];
		sLdsjArray = new String[nMax];
		sZxrqArray = new String[nMax];
		nHbhLength=0;
		if(rs==null){
			DB.close();
			return false;
		}
		try
		{
			while(rs.next()){
				sHbhArray[nHbhLength] = rs.getString(1);
				sJxdmArray[nHbhLength] = rs.getString(2);
				sQfsjArray[nHbhLength] = rs.getString(3);
				sLdsjArray[nHbhLength] = rs.getString(4);
				sZxrqArray[nHbhLength] = rs.getString(5);
				nHbhLength++;
				if(nHbhLength==nMax){
					DB.close();
					return false;
				}
			}
		}catch(Exception ex){
			DB.close();
		}
		DB.close();
		return true;
	}
	
	
	//获得航班号
	public String getHbh()
	{
		if(nLineLength==0)
			return null;
		return sHbh;
	}
	
	//获得特定班期的长度:
	public int getLineLength()
	{
		return nLineLength;
	}
	
	//获得航班号数组
	public String[] getHbhArray()
	{
		if(nHbhLength==0)
			return null;
		String[] sTmp=new String[nHbhLength];
		for(int i=0;i<nHbhLength;i++)
			sTmp[i] = sHbhArray[i];
		return sTmp;
	}
	
	
	//获得机型代码数组
	public String[] getJxdmArray()
	{
		if(nHbhLength==0)
			return null;
		String[] sTmp=new String[nHbhLength];
		for(int i=0;i<nHbhLength;i++)
			sTmp[i] = sJxdmArray[i];
		return sTmp;
	}
	
	
	//获得起飞时间数组
	public String[] getQfsjArray()
	{
		if(nHbhLength==0)
			return null;
		String[] sTmp=new String[nHbhLength];
		for(int i=0;i<nHbhLength;i++)
			sTmp[i] = this.nemberToTime(sQfsjArray[i]);
		return sTmp;
	}
	
	
	//获得落地时间数组
	public String[] getLdsjArray()
	{
		if(nHbhLength==0)
			return null;
		String[] sTmp=new String[nHbhLength];
		for(int i=0;i<nHbhLength;i++)
			sTmp[i] = this.nemberToTime(sLdsjArray[i]);
		return sTmp;
	}
	
	
	//获得执行日期数组
	public String[] getZxrqArray()
	{
		if(nHbhLength==0)
			return null;
		String[] sTmp=new String[nHbhLength];
		for(int i=0;i<nHbhLength;i++)
			sTmp[i] = sZxrqArray[i];
		return sTmp;
	}
	
	
	//获得机型代码
	public String getJxdm()
	{
		if(nLineLength==0)
			return null;
		return sJxdm;
	}
	
	
	//获得起飞机场
	public String[] getQfjc()
	{
		if(nLineLength==0)
			return null;
		String[] sTmp = new String[nLineLength];
		for(int i=0;i<nLineLength;i++)
			sTmp[i]=this.szdmToZwqc(sQfjc[i]);
		return sTmp;
	}
	
	
	//获得起飞时间
	public String[] getQfsj()
	{
		if(nLineLength==0)
			return null;
		String[] sTmp = new String[nLineLength];
		for(int i=0;i<nLineLength;i++)
			sTmp[i]=this.nemberToTime(sQfsj[i]);
		return sTmp;
	}
	
	
	//获得落地机场
	public String[] getLdjc()
	{
		if(nLineLength==0)
			return null;
		String[] sTmp = new String[nLineLength];
		for(int i=0;i<nLineLength;i++)
			sTmp[i]=this.szdmToZwqc(sLdjc[i]);
		return sTmp;
	}
	
	
	//获得落地时间
	public String[] getLdsj()
	{
		if(nLineLength==0)
			return null;
		String[] sTmp = new String[nLineLength];
		for(int i=0;i<nLineLength;i++)
			sTmp[i]=this.nemberToTime(sLdsj[i]);
		return sTmp;
	}
	
	
	//获得执行日期
	public String getZxrq()
	{
		if(nLineLength==0)
			return null;
		return sZxrq;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -