📄 hbdt.java
字号:
/**
*
* Hbdt.java
*
*/
import java.io.*;
import java.sql.*;
import java.util.Calendar;
/*
@author Liyan
*/
public class Hbdt
{
//航班基本信息:
//航班动态的基本信息:
//公司名称、国内国际、航班号、机型、日期、
//起飞机场、落地机场、航班状态、计划起飞、计划落地、实际起飞、实际落地
//航空公司名称:
String sCompany,sGngj,sHbh,sJxdm,sZxrq;
String[] sQfjc,sLdjc,sHbzt,sJhqf,sJhld,sSjqf,sSjld;
//其它基本变量:一个航班的最大经停点、实际经停点、特定航线航班数
int nMaxLength=10,nHbhLength=0,nLineLength=0;
//航线查询的变量:
DBOperater DBLine;
ResultSet rsLine;
Hbdt()
{
//构造函数
//一些初始化的过程
sQfjc = new String[nMaxLength];
sLdjc = new String[nMaxLength];
sHbzt = new String[nMaxLength];
sJhqf = new String[nMaxLength];
sJhld = new String[nMaxLength];
sSjqf = new String[nMaxLength];
sSjld = new String[nMaxLength];
}
//航班动态:按航班号查询航班情况
public boolean DtHbhQuery(String sHbh)
{
this.sHbh=sHbh;
//加入时间的判断:
//取得航班动态中的执行日期:
String sDate="";
String sSql="SELECT distinct zxrq";
sSql+=" FROM hbdt WHERE hbh ='"+sHbh+"' order by zxrq desc";
DBOperater DB = new DBOperater("Hb");
ResultSet rs = DB.executeQuery(sSql);
if(rs==null){
DB.close();
nHbhLength=0;
return false;
}
try
{
if(rs.next()){
sDate=rs.getString(1);
}else{
DB.close();
nHbhLength=0;
return false;
}
}catch(Exception ex){
DB.close();
nHbhLength=0;
return false;
}
DB.close();
//如果执行日期比当前时间晚48小时以上,则return false,否则继续查询
Calendar c1 = Calendar.getInstance(),c2 = Calendar.getInstance();
int nc[] =getZxrq(sDate);
c2.set(nc[0],nc[1]-1,nc[2],48,0);
if(c2.getTime().before(c1.getTime()))
return false;
String sAddition = " AND zxrq = '"+sDate+"'";
//把起飞落地情况依次放入数组:
//执行日期的处理:hbdt是否只放每个航班的最新情况?
//寻找航班起点:
//String sSql="SELECT * FROM hbdt WHERE hbh ='"+sHbh+"' AND zxrq like '%"+sWeek+"%' ";
//sSql+="AND qfjc NOT IN (SELECT ldjc FROM hbjh WHERE hbh ='"+sHbh+"' AND zxrq like '%"+sWeek+"%')";
sSql="SELECT hbzt,qfjc,yjqf,sjqf,yjld,sjld,ldjc,jxdm,zxrq,gngj";
sSql+=" FROM hbdt WHERE hbh ='"+sHbh+"' AND zxrq = '"+sDate+"'";
sSql+=" AND qfjc NOT IN (SELECT ldjc FROM hbdt WHERE hbh ='"+sHbh+"'";
sSql+=" AND zxrq ='"+sDate+"')";
DB = new DBOperater("Hb");
rs = DB.executeQuery(sSql);
if(rs==null){
DB.close();
nHbhLength=0;
return false;
}
try
{
if(rs.next()){
sHbzt[0]=rs.getString(1);
sQfjc[0]=rs.getString(2);
sJhqf[0]=rs.getString(3);
sSjqf[0]=rs.getString(4);
sJhld[0]=rs.getString(5);
sSjld[0]=rs.getString(6);
sLdjc[0]=rs.getString(7);
sJxdm=rs.getString(8);
sZxrq=rs.getString(9);
sGngj=rs.getString(10);
}else{
DB.close();
nHbhLength=0;
return false;
}
}catch(Exception ex){
DB.close();
nHbhLength=0;
return false;
}
DB.close();
//寻找中间点:
String Condition=" And qfjc<>'"+sQfjc[0]+"'";
for(int i=1;i<nMaxLength;i++){
//sSql="SELECT hbzt,qfjc,yjqf,sjqf,yjld,sjld,ldjc FROM hbdt WHERE hbh ='"+sHbh+"' "+Condition;
//sSql+="AND qfjc NOT IN (SELECT ldjc FROM hbdt WHERE hbh ='"+sHbh+"' "+Condition+")" ;
sSql="SELECT hbzt,qfjc,yjqf,sjqf,yjld,sjld,ldjc FROM hbdt WHERE hbh ='"+sHbh+"' ";
sSql+="and zxrq = '"+sDate+"' "+Condition;
sSql+="AND qfjc NOT IN (SELECT ldjc FROM hbdt WHERE hbh ='"+sHbh+"' ";
sSql+="and zxrq = '"+sDate+"' "+Condition+")" ;
DB = new DBOperater("Hb");
rs = DB.executeQuery(sSql);
if(rs==null){
DB.close();
nHbhLength=0;
return false;
}
try
{
if(rs.next()){
sHbzt[i]=rs.getString(1);
sQfjc[i]=sLdjc[i-1]=rs.getString(2);
sJhqf[i]=rs.getString(3);
sSjqf[i]=rs.getString(4);
sJhld[i]=rs.getString(5);
sSjld[i]=rs.getString(6);
sLdjc[i]=rs.getString(7);
}else{
DB.close();
break;
}
}catch(Exception ex){
DB.close();
nHbhLength=0;
return false;
}
DB.close();
nHbhLength++;
Condition+=" And qfjc<>'"+sQfjc[i]+"'";
}
//获得落地时间:
for(int i=0;i<=nHbhLength;i++)
{
sSql="SELECT yjld,sjld FROM hbdt WHERE hbh ='"+sHbh+"'";
sSql+=" AND ldjc='"+sLdjc[i]+"' and zxrq = '"+sDate+"'";
DB = new DBOperater("Hb");
rs = DB.executeQuery(sSql);
if(rs==null){
DB.close();
nLineLength=0;
return false;
}
try
{
if(rs.next()){
sJhld[i]=rs.getString(1);
sSjld[i]=rs.getString(2);
}else{
DB.close();
break;
}
}catch(Exception ex){
DB.close();
nLineLength=0;
return false;
}
DB.close();
}
nHbhLength++;
return true;
}
//航班动态:按航线查询航班情况
/*public void setDtLineQuery(String sFrom,String sTo)
{
//String sLineSql="SELECT * FROM hbdt WHERE qfjc='"+this.zwqcToSzdm(sFrom)+"' AND ldjc='"+this.zwqcToSzdm(sTo);
//sLineSql+="' order by hbh";
String sLineSql="SELECT * FROM hbdt WHERE qfjc like '%"+this.zwqcToSzdm(sFrom)+"%' AND ldjc like '%"+this.zwqcToSzdm(sTo);
sLineSql+="%' order by hbh";
DBLine = new DBOperater("hb");
rsLine = DBLine.executeQuery(sLineSql);
this.countNember("SELECT count(*) FROM hbdt WHERE qfjc like '%"+this.zwqcToSzdm(sFrom)+"%' AND ldjc like '%"+this.zwqcToSzdm(sTo)+"%'");
}*/
public String[][] DtLineQuery(String sFrom,String sTo)
{
//加入时间的判断:
//取得航班动态中的执行日期:
String sDate="";
String sSql="SELECT distinct zxrq";
sSql+=" FROM hbdt WHERE qfjc = '"+this.zwqcToSzdm(sFrom);
sSql+="' AND ldjc = '"+this.zwqcToSzdm(sTo)+"' order by zxrq desc";
DBOperater DB = new DBOperater("Hb");
ResultSet rs = DB.executeQuery(sSql);
try
{
if(rs.next()){
sDate=rs.getString(1);
}else{
DB.close();
nHbhLength=0;
return null;
}
}catch(Exception ex){
DB.close();
nHbhLength=0;
return null;
}
DB.close();
//如果执行日期比当前时间晚48小时以上,则return false,否则继续查询
Calendar c1 = Calendar.getInstance(),c2 = Calendar.getInstance();
int nc[] =getZxrq(sDate);
c2.set(nc[0],nc[1]-1,nc[2],48,0);
if(c2.getTime().before(c1.getTime()))
return null;
String sAddition = " AND zxrq = '"+sDate+"'";
//查询符合条件的航班数量:
sSql="SELECT count(*) FROM hbdt WHERE qfjc = '"+this.zwqcToSzdm(sFrom);
sSql+="' AND ldjc = '"+this.zwqcToSzdm(sTo)+"' and zxrq = '"+sDate+"'";
DB = new DBOperater("hb");
rs = DB.executeQuery(sSql);
int nCount=0;
try
{
System.out.println("nCount0:"+nCount);
if(rs.next()){
nCount = rs.getInt(1);
System.out.println("nCount1:"+nCount);
}
}catch(Exception ex){
System.out.println(ex.toString());
return null;
}
DB.close();
if(nCount==0)
return null;
String[][] sArray = new String[nCount][11];
//依次为: hbh、hbzt、qfjc、jhqf、sjqf、jhld、sjld、ldjc、jxdm、zxrq、gngj
//表中的位置: 1、 3、 5、 6、 8、 10、 12、 13、 14、 15、 16
//查询符合条件的航班:
sSql="SELECT * FROM hbdt WHERE qfjc = '"+this.zwqcToSzdm(sFrom)+"' AND ldjc = '"+this.zwqcToSzdm(sTo);
sSql+="' and zxrq='"+sDate+"' order by hbh";
DB = new DBOperater("hb");
rs = DB.executeQuery(sSql);
try
{
for(int i=0;i<nCount;i++)
if(rs.next()){
sArray[i][0] = rs.getString(1);
sArray[i][1] = rs.getString(3);
sArray[i][2] = rs.getString(5);
sArray[i][3] = rs.getString(6);
sArray[i][4] = rs.getString(8);
sArray[i][5] = rs.getString(10);
sArray[i][6] = rs.getString(12);
sArray[i][7] = rs.getString(13);
sArray[i][8] = rs.getString(14);
sArray[i][9] = rs.getString(15);
sArray[i][10] = rs.getString(16);
}
}catch(Exception ex){
System.out.println(ex.toString());
return null;
}
DB.close();
return sArray;
}
/*public String[] DtLineQuery()
{
if(rsLine==null)
return null;
String[] sArray = new String[11];
//依次为: hbh、hbzt、qfjc、jhqf、sjqf、jhld、sjld、ldjc、jxdm、zxrq、gngj
//表中的位置: 1、 3、 5、 6、 8、 10、 12、 13、 14、 15、 16
try
{
if(rsLine.next()){
sArray[0] = rsLine.getString(1);
sArray[1] = rsLine.getString(3);
sArray[2] = rsLine.getString(5);
sArray[3] = rsLine.getString(6);
sArray[4] = rsLine.getString(8);
sArray[5] = rsLine.getString(10);
sArray[6] = rsLine.getString(12);
sArray[7] = rsLine.getString(13);
sArray[8] = rsLine.getString(14);
sArray[9] = rsLine.getString(15);
sArray[10] = rsLine.getString(16);
return sArray;
}
}catch(Exception ex){
return null;
}
return null;
}
//关闭连接。
public void DtLineClose()
{
if(DBLine!=null)
DBLine.close();
}*/
//航班动态:按航空公司查询航班:
public String[] getHbdtCompany(String sCompany,int nPageLarge,int nPageNember)
{
if(sCompany==null){
return null;
}
//加入时间的判断:
//取得航班动态中的执行日期:
String sDate="";
String sSql="SELECT distinct zxrq";
sSql+=" FROM hbdt WHERE hbh like '"+sCompany+"%' order by zxrq desc";
DBOperater DB = new DBOperater("Hb");
ResultSet rs = DB.executeQuery(sSql);
try
{
if(rs.next()){
sDate=rs.getString(1);
}else{
DB.close();
nHbhLength=0;
return null;
}
}catch(Exception ex){
DB.close();
nHbhLength=0;
return null;
}
DB.close();
//如果执行日期比当前时间晚48小时以上,则return false,否则继续查询
Calendar c1 = Calendar.getInstance(),c2 = Calendar.getInstance();
int nc[] =getZxrq(sDate);
c2.set(nc[0],nc[1]-1,nc[2],48,0);
if(c2.getTime().before(c1.getTime()))
return null;
String sAddition = " AND zxrq = '"+sDate+"'";
sSql="Select distinct hbh From hbdt Where hbh like '"+sCompany+"%'";
sSql+=" and zxrq = '"+sDate+"' order by hbh";
DB = new DBOperater("Hb");
rs = DB.executeQuery(sSql);
if(rs==null){
DB.close();
return null;
}
if(nPageNember<1)
nPageNember=1;
try
{
for(int i=0;i<(nPageNember-1)*nPageLarge;i++)
if(rs.next()){
}else{
DB.close();
return null;
}
}catch(Exception ex){
DB.close();
return null;
}
String[] sTmpArray = new String[nPageLarge];
int nTmp=0;
try
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -