📄 hb.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 + -