源代码:
public class MedicareApplication { static private MedicareApplication mApp;
//我加的变量
PasswordDialog passwordDialog;
String hostname;
String databasename;
String username;
String password; //连接池
private static medicareApplet md;
Database medicareDatabase = new Database();
QueryDataSet baseselecttable = new QueryDataSet();
QueryDataSet commoninfotable = new QueryDataSet();
QueryDataSet diseaseinfo = new QueryDataSet();
QueryDataSet hosipitalizeinfo = new QueryDataSet();
QueryDataSet medicaliteminfo = new QueryDataSet();
QueryDataSet medicineinfo = new QueryDataSet();
QueryDataSet personalaccount = new QueryDataSet();
QueryDataSet personalinfo = new QueryDataSet();
QueryDataSet unitinfo = new QueryDataSet();
QueryDataSet policyparameter = new QueryDataSet(); SysManageFrame sysManageFrame1;
//MedicareDataModule medicareDataModule1; //Static Function
static synchronized public MedicareApplication getInstance() {
if (mApp == null) {
mApp = new MedicareApplication();
}
return mApp; } //Construct the applet
private MedicareApplication() {
medicareDatabase.setConnection(new com.borland.dx.sql.dataset.ConnectionDescriptor("jdbc:oracle:thin:@airlulu:1521:OEMREP", "airlulu", "air9413", false, "oracle.jdbc.driver.OracleDriver"));
//medicareDatabase.setConnection(new com.borland.dx.sql.dataset.ConnectionDescriptor("jdbc:oracle:thin:@"+hostname+":1521:"+databasename, username, password, false, "oracle.jdbc.driver.OracleDriver")); policyparameter.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(medicareDatabase, "SELECT POLICYPARAMETER.PKEY,POLICYPARAMETER.MODIFYDATE,POLICYPARAMETER.MODIFYPERSON,POLICYPARAMETER.B" +
"ASICPARAMETER,POLICYPARAMETER.SPECIALITENPAYSTANDARD,POLICYPARAMETER.HOSPITALIZATOINPAYSTANDARD,POLIC" +
"YPARAMETER.GREATILLESSPAYSTANDARD,POLICYPARAMETER.PARTPAYITEMSTANDARD,POLICYPARAMETER.REMEDYMANAGEMEN" +
"TSTANDARD FROM AIRLULU.POLICYPARAMETER", null, true, Load.ALL));
unitinfo.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(medicareDatabase, "SELECT UNITINFO.UNITCODE,UNITINFO.AREA,UNITINFO.UNITTYPE,UNITINFO.POSSESSIONMODE,UNITINFO.JOINDATE,UN" +
"ITINFO.FULLNAME,UNITINFO.ADDRESS,UNITINFO.MAJOTDEPT,UNITINFO.SUMSALARYYEAR,UNITINFO.MEDICAREPRINCIPAL" +
",UNITINFO.MEDICAREHANDLER,UNITINFO.BANK,UNITINFO.BANKACCOUNT,UNITINFO.UNITDELEGATE,UNITINFO.DELEGATEP" +
"OSITION,UNITINFO.MENO,UNITINFO.APPOINTHOSPITALLIST,UNITINFO.OTHERASSURANCELIST " +
"FROM AIRLULU.UNITINFO", null, true, Load.ALL));
personalinfo.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(medicareDatabase, "SELECT PERSONALINFO.PERSONCODE,PERSONALINFO.IDCARD,PERSONALINFO.SEX,PERSONALINFO.BIRTHDAY,PERSONALINF" +
"O.ASSURANCEID,PERSONALINFO.AREA,PERSONALINFO.JOINDATE,PERSONALINFO.ADDRESS,PERSONALINFO.POSTALCODE,PE" +
"RSONALINFO.TELEPHONE,PERSONALINFO.PERSONTYPE,PERSONALINFO.FOLK,PERSONALINFO.LASTYEARSUNSALARY,PERSONA" +
"LINFO.OCCUPATION,PERSONALINFO.\"POSITION\",PERSONALINFO.POST,PERSONALINFO.WORKTYPE,PERSONALINFO.ISSPECI" +
"ALTYPE,PERSONALINFO.SPECIALTYPE,PERSONALINFO.UNITCODE,PERSONALINFO.UNITNAME,PERSONALINFO.WORKDATE,PER" +
"SONALINFO.ISOUTOFTOWN,PERSONALINFO.OUTOFTOWNCITY,PERSONALINFO.PORTRAIT,PERSONALINFO.RELATIONS,PERSONA" +
"LINFO.APPOINTHOSPITALLIST,PERSONALINFO.OTHERASSURANCELIST FROM AIRLULU.PERSONALINFO", null, true, Load.ALL));
personalaccount.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(medicareDatabase, "SELECT PERSONALACCOUNT.ASSURANCEID,PERSONALACCOUNT.PERSONCODE,PERSONALACCOUNT.BALANCE,PERSONALACCOUNT" +
".FREEZE FROM AIRLULU.PERSONALACCOUNT", null, true, Load.ALL));
medicineinfo.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(medicareDatabase, "SELECT MEDICINEINFO.MEDICODE,MEDICINEINFO.MEDINAME,MEDICINEINFO.CREATEDATE,MEDICINEINFO.SPECS,MEDICIN" +
"EINFO.UNITAGE,MEDICINEINFO.UNITPRICE,MEDICINEINFO.INPUTCODE,MEDICINEINFO.PRODUCINGAREA,MEDICINEINFO.M" +
"EDITYPE,MEDICINEINFO.PAYLEVEL,MEDICINEINFO.ISSPECIALTY,MEDICINEINFO.ISPARTPAYITEM,MEDICINEINFO.PARTPA" +
"YTYPE,MEDICINEINFO.ISMEDICARETYPE FROM AIRLULU.MEDICINEINFO", null, true, Load.ALL));
medicaliteminfo.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(medicareDatabase, "SELECT MEDICALITEMINFO.ITEMCODE,MEDICALITEMINFO.ITEMNAME,MEDICALITEMINFO.ITEMTYPE,MEDICALITEMINFO.ISS" +
"PECIALTY,MEDICALITEMINFO.ISMEDICARETYPE FROM AIRLULU.MEDICALITEMINFO", null, true, Load.ALL));
hosipitalizeinfo.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(medicareDatabase, "SELECT HOSIPITALIZEINFO.PERSONCODE,HOSIPITALIZEINFO.HOSPITALIZEID,HOSIPITALIZEINFO.ASSURANCEID,HOSIPI" +
"TALIZEINFO.HOSPITALIZEDATE,HOSIPITALIZEINFO.INFO,HOSIPITALIZEINFO.MONEYUSED " +
"FROM AIRLULU.HOSIPITALIZEINFO", null, true, Load.ALL));
diseaseinfo.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(medicareDatabase, "SELECT DISEASEINFO.DISEASECODE,DISEASEINFO.DISEASENAME,DISEASEINFO.CREATEDATE,DISEASEINFO.INPUTCODE,D" +
"ISEASEINFO.ISSPECIALTY,DISEASEINFO.ISMEDICARETYPE FROM AIRLULU.DISEASEINFO", null, true, Load.ALL));
commoninfotable.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(medicareDatabase, "SELECT COMMONINFOTABLE.INFOTYPE,COMMONINFOTABLE.ITEMCONTENT FROM " +
"AIRLULU.COMMONINFOTABLE", null, true, Load.ALL));
baseselecttable.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(medicareDatabase, "SELECT BASESELECTTABLE.BASEDESCRIBE,BASESELECTTABLE.BASENUMBER FROM " +
"AIRLULU.BASESELECTTABLE", null, true, Load.ALL));
//输入用户名和密码,传到变量username和password
passwordDialog=new PasswordDialog();
passwordDialog.setLocation(100,100);
passwordDialog.show();
hostname=passwordDialog.hostname.getText();
databasename=passwordDialog.databasename.getText();
username=passwordDialog.username.getText();
password=new String(passwordDialog.password.getPassword());
passwordDialog.dispose();
//ConnectionDescriptor cd=new ConnectionDescriptor("jdbc:oracle:thin:@"+hostname+":1521:"+databasename,username,password, false, "oracle.jdbc.driver.OracleDriver");
sysManageFrame1 = new SysManageFrame();
sysManageFrame1.show(); } //获得连接池内容的方法
public Database getMedicareDatabase() {
return medicareDatabase;
}
public QueryDataSet getBaseselecttable() {
return baseselecttable;
}
public QueryDataSet getCommoninfotable() {
return commoninfotable;
}
public QueryDataSet getDiseaseinfo() {
return diseaseinfo;
}
public QueryDataSet getHosipitalizeinfo() {
return hosipitalizeinfo;
}
public QueryDataSet getMedicaliteminfo() {
return medicaliteminfo;
}
public QueryDataSet getMedicineinfo() {
return medicineinfo;
}
public QueryDataSet getPersonalaccount() {
return personalaccount;
}
public QueryDataSet getPersonalinfo() {
return personalinfo;
}
public QueryDataSet getUnitinfo() {
return unitinfo;
}
public QueryDataSet getPolicyparameter() {
return policyparameter;
}
//Get Applet information
public String getClassInfo() {
return "Class Information";
}
//Get parameter info
public String[][] getParameterInfo() {
return null;
}
}之后在主程序中写了MedicareApplication.getInstance();然后:
public class Sm_DiseaseInfoPanel extends JPanel {
Database database1 = MedicareApplication.getInstance().getMedicareDatabase();
QueryDataSet queryDataSet1 = MedicareApplication.getInstance().getDiseaseinfo();
}
public class MedicareApplication { static private MedicareApplication mApp;
//我加的变量
PasswordDialog passwordDialog;
String hostname;
String databasename;
String username;
String password; //连接池
private static medicareApplet md;
Database medicareDatabase = new Database();
QueryDataSet baseselecttable = new QueryDataSet();
QueryDataSet commoninfotable = new QueryDataSet();
QueryDataSet diseaseinfo = new QueryDataSet();
QueryDataSet hosipitalizeinfo = new QueryDataSet();
QueryDataSet medicaliteminfo = new QueryDataSet();
QueryDataSet medicineinfo = new QueryDataSet();
QueryDataSet personalaccount = new QueryDataSet();
QueryDataSet personalinfo = new QueryDataSet();
QueryDataSet unitinfo = new QueryDataSet();
QueryDataSet policyparameter = new QueryDataSet(); SysManageFrame sysManageFrame1;
//MedicareDataModule medicareDataModule1; //Static Function
static synchronized public MedicareApplication getInstance() {
if (mApp == null) {
mApp = new MedicareApplication();
}
return mApp; } //Construct the applet
private MedicareApplication() {
medicareDatabase.setConnection(new com.borland.dx.sql.dataset.ConnectionDescriptor("jdbc:oracle:thin:@airlulu:1521:OEMREP", "airlulu", "air9413", false, "oracle.jdbc.driver.OracleDriver"));
//medicareDatabase.setConnection(new com.borland.dx.sql.dataset.ConnectionDescriptor("jdbc:oracle:thin:@"+hostname+":1521:"+databasename, username, password, false, "oracle.jdbc.driver.OracleDriver")); policyparameter.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(medicareDatabase, "SELECT POLICYPARAMETER.PKEY,POLICYPARAMETER.MODIFYDATE,POLICYPARAMETER.MODIFYPERSON,POLICYPARAMETER.B" +
"ASICPARAMETER,POLICYPARAMETER.SPECIALITENPAYSTANDARD,POLICYPARAMETER.HOSPITALIZATOINPAYSTANDARD,POLIC" +
"YPARAMETER.GREATILLESSPAYSTANDARD,POLICYPARAMETER.PARTPAYITEMSTANDARD,POLICYPARAMETER.REMEDYMANAGEMEN" +
"TSTANDARD FROM AIRLULU.POLICYPARAMETER", null, true, Load.ALL));
unitinfo.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(medicareDatabase, "SELECT UNITINFO.UNITCODE,UNITINFO.AREA,UNITINFO.UNITTYPE,UNITINFO.POSSESSIONMODE,UNITINFO.JOINDATE,UN" +
"ITINFO.FULLNAME,UNITINFO.ADDRESS,UNITINFO.MAJOTDEPT,UNITINFO.SUMSALARYYEAR,UNITINFO.MEDICAREPRINCIPAL" +
",UNITINFO.MEDICAREHANDLER,UNITINFO.BANK,UNITINFO.BANKACCOUNT,UNITINFO.UNITDELEGATE,UNITINFO.DELEGATEP" +
"OSITION,UNITINFO.MENO,UNITINFO.APPOINTHOSPITALLIST,UNITINFO.OTHERASSURANCELIST " +
"FROM AIRLULU.UNITINFO", null, true, Load.ALL));
personalinfo.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(medicareDatabase, "SELECT PERSONALINFO.PERSONCODE,PERSONALINFO.IDCARD,PERSONALINFO.SEX,PERSONALINFO.BIRTHDAY,PERSONALINF" +
"O.ASSURANCEID,PERSONALINFO.AREA,PERSONALINFO.JOINDATE,PERSONALINFO.ADDRESS,PERSONALINFO.POSTALCODE,PE" +
"RSONALINFO.TELEPHONE,PERSONALINFO.PERSONTYPE,PERSONALINFO.FOLK,PERSONALINFO.LASTYEARSUNSALARY,PERSONA" +
"LINFO.OCCUPATION,PERSONALINFO.\"POSITION\",PERSONALINFO.POST,PERSONALINFO.WORKTYPE,PERSONALINFO.ISSPECI" +
"ALTYPE,PERSONALINFO.SPECIALTYPE,PERSONALINFO.UNITCODE,PERSONALINFO.UNITNAME,PERSONALINFO.WORKDATE,PER" +
"SONALINFO.ISOUTOFTOWN,PERSONALINFO.OUTOFTOWNCITY,PERSONALINFO.PORTRAIT,PERSONALINFO.RELATIONS,PERSONA" +
"LINFO.APPOINTHOSPITALLIST,PERSONALINFO.OTHERASSURANCELIST FROM AIRLULU.PERSONALINFO", null, true, Load.ALL));
personalaccount.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(medicareDatabase, "SELECT PERSONALACCOUNT.ASSURANCEID,PERSONALACCOUNT.PERSONCODE,PERSONALACCOUNT.BALANCE,PERSONALACCOUNT" +
".FREEZE FROM AIRLULU.PERSONALACCOUNT", null, true, Load.ALL));
medicineinfo.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(medicareDatabase, "SELECT MEDICINEINFO.MEDICODE,MEDICINEINFO.MEDINAME,MEDICINEINFO.CREATEDATE,MEDICINEINFO.SPECS,MEDICIN" +
"EINFO.UNITAGE,MEDICINEINFO.UNITPRICE,MEDICINEINFO.INPUTCODE,MEDICINEINFO.PRODUCINGAREA,MEDICINEINFO.M" +
"EDITYPE,MEDICINEINFO.PAYLEVEL,MEDICINEINFO.ISSPECIALTY,MEDICINEINFO.ISPARTPAYITEM,MEDICINEINFO.PARTPA" +
"YTYPE,MEDICINEINFO.ISMEDICARETYPE FROM AIRLULU.MEDICINEINFO", null, true, Load.ALL));
medicaliteminfo.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(medicareDatabase, "SELECT MEDICALITEMINFO.ITEMCODE,MEDICALITEMINFO.ITEMNAME,MEDICALITEMINFO.ITEMTYPE,MEDICALITEMINFO.ISS" +
"PECIALTY,MEDICALITEMINFO.ISMEDICARETYPE FROM AIRLULU.MEDICALITEMINFO", null, true, Load.ALL));
hosipitalizeinfo.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(medicareDatabase, "SELECT HOSIPITALIZEINFO.PERSONCODE,HOSIPITALIZEINFO.HOSPITALIZEID,HOSIPITALIZEINFO.ASSURANCEID,HOSIPI" +
"TALIZEINFO.HOSPITALIZEDATE,HOSIPITALIZEINFO.INFO,HOSIPITALIZEINFO.MONEYUSED " +
"FROM AIRLULU.HOSIPITALIZEINFO", null, true, Load.ALL));
diseaseinfo.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(medicareDatabase, "SELECT DISEASEINFO.DISEASECODE,DISEASEINFO.DISEASENAME,DISEASEINFO.CREATEDATE,DISEASEINFO.INPUTCODE,D" +
"ISEASEINFO.ISSPECIALTY,DISEASEINFO.ISMEDICARETYPE FROM AIRLULU.DISEASEINFO", null, true, Load.ALL));
commoninfotable.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(medicareDatabase, "SELECT COMMONINFOTABLE.INFOTYPE,COMMONINFOTABLE.ITEMCONTENT FROM " +
"AIRLULU.COMMONINFOTABLE", null, true, Load.ALL));
baseselecttable.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(medicareDatabase, "SELECT BASESELECTTABLE.BASEDESCRIBE,BASESELECTTABLE.BASENUMBER FROM " +
"AIRLULU.BASESELECTTABLE", null, true, Load.ALL));
//输入用户名和密码,传到变量username和password
passwordDialog=new PasswordDialog();
passwordDialog.setLocation(100,100);
passwordDialog.show();
hostname=passwordDialog.hostname.getText();
databasename=passwordDialog.databasename.getText();
username=passwordDialog.username.getText();
password=new String(passwordDialog.password.getPassword());
passwordDialog.dispose();
//ConnectionDescriptor cd=new ConnectionDescriptor("jdbc:oracle:thin:@"+hostname+":1521:"+databasename,username,password, false, "oracle.jdbc.driver.OracleDriver");
sysManageFrame1 = new SysManageFrame();
sysManageFrame1.show(); } //获得连接池内容的方法
public Database getMedicareDatabase() {
return medicareDatabase;
}
public QueryDataSet getBaseselecttable() {
return baseselecttable;
}
public QueryDataSet getCommoninfotable() {
return commoninfotable;
}
public QueryDataSet getDiseaseinfo() {
return diseaseinfo;
}
public QueryDataSet getHosipitalizeinfo() {
return hosipitalizeinfo;
}
public QueryDataSet getMedicaliteminfo() {
return medicaliteminfo;
}
public QueryDataSet getMedicineinfo() {
return medicineinfo;
}
public QueryDataSet getPersonalaccount() {
return personalaccount;
}
public QueryDataSet getPersonalinfo() {
return personalinfo;
}
public QueryDataSet getUnitinfo() {
return unitinfo;
}
public QueryDataSet getPolicyparameter() {
return policyparameter;
}
//Get Applet information
public String getClassInfo() {
return "Class Information";
}
//Get parameter info
public String[][] getParameterInfo() {
return null;
}
}之后在主程序中写了MedicareApplication.getInstance();然后:
public class Sm_DiseaseInfoPanel extends JPanel {
Database database1 = MedicareApplication.getInstance().getMedicareDatabase();
QueryDataSet queryDataSet1 = MedicareApplication.getInstance().getDiseaseinfo();
}
我试了一下,是可以的.
public class MedicareApplication { static private MedicareApplication mApp; static synchronized public MedicareApplication getInstance() {
if (mApp == null) {
mApp = new MedicareApplication();
}
return mApp;
}
}
public class Test { public Test() {
} public void test1() {
MedicareApplication ma = MedicareApplication.getInstance();
System.out.println(ma);
} public void test2() {
MedicareApplication ma = MedicareApplication.getInstance();
System.out.println(ma);
} public static void main(String[] args) {
Test t = new Test();
t.test1();
t.test2();
//是同一个对象的地址
}}
我试了一下,是可以的.
public class MedicareApplication { static private MedicareApplication mApp; static synchronized public MedicareApplication getInstance() {
if (mApp == null) {
mApp = new MedicareApplication();
}
return mApp;
}
}
public class Test { public Test() {
} public void test1() {
MedicareApplication ma = MedicareApplication.getInstance();
System.out.println(ma);
} public void test2() {
MedicareApplication ma = MedicareApplication.getInstance();
System.out.println(ma);
} public static void main(String[] args) {
Test t = new Test();
t.test1();
t.test2();
//是同一个对象的地址
}}
类2是在类1的初始化中实例化的,这时类1还没有生成实例,所以类2会取得NULL,谢谢!!!