SIGMOD: ACM SIGMOD Conf on Management of Data PODS: ACM SIGMOD Conf on Principles of DB Systems VLDB: Very Large Data Bases ICDE: Intl Conf on Data Engineering
CIKM: Intl. Conf on Information and Knowledge Management ICDT: Intl Conf on Database Theory
Rank 2:
SSD: Intl Symp on Large Spatial Databases DEXA: Database and Expert System Applications FODO: Intl Conf on Foundation on Data Organization EDBT: Extending DB Technology DOOD: Deductive and Object-Oriented Databases DASFAA: Database Systems for Advanced Applications SSDBM: Intl Conf on Scientific and Statistical DB Mgmt CoopIS - Conference on Cooperative Information Systems ER - Intl Conf on Conceptual Modeling (ER) 参考 http://www3.ntu.edu.sg/home/assourav/crank.htm
SSD: Intl Symp on Large Spatial Databases DEXA: Database and Expert System Applications FODO: Intl Conf on Foundation on Data Organization EDBT: Extending DB Technology DOOD: Deductive and Object-Oriented Databases DASFAA: Database Systems for Advanced Applications SSDBM: Intl Conf on Scientific and Statistical DB Mgmt CoopIS - Conference on Cooperative Information Systems ER - Intl Conf on Conceptual Modeling (ER)
参考 http://www3.ntu.edu.sg/home/assourav/crank.htm
//*******************The Log classimport java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.uitl.Date;import java.text.DateFormat;
public class Log{ private static final String filePath = PropertyReader.getResource("Log_File_Path");//Supposing we have define in the last ProperyReader class and the file public static final String EXCEPTION = "Exception"; public static final String CREATE_STAFF = "Create Staff"; public static final String EDIT_STAFF = "Edit Staff"; public static final String DELETE_STAFF = "Delete Staff"; public static final String RECORD_HAS_EXIST = "Record Has Exist";
public static void log(String msg_type, Exception e){ StringBuffer errMsg = new StringBuffer(e.toString); for(int i=0;i<e.getStackTrace().length;i++){ errMsg.append("\n\t at"); errMsg.append(e.getStackTrace()[i].toString); } log(msg_type,errMsg.toString()); OptionPanel.showErrMsg("Sorry,System may have an error \n System will exit"); System.exit(-1); }
public static void log(String msg.type,Staff staff){ String msg = null; if(msg_type == CREATE_STAFF){ msg = staff.toString() + "has benn created"; }else if(msg_type == EDIT_STAFF){ msg = staff.toString() + "has been Changed"; }else if(msg_type == DELETE_STAFF){ msg = staff.toString() + "has been Deleted"; }else if(msg_type == RECORD_HAS_EXIST){ msg = staff.toString() + "has exist in the database"; } log(msg_type,msg); }
private static void log(String msg_type,String msg){ BufferedWriter out = null; DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM); try{ out = new BufferedWriter(new FileWriter(getLogFilePath(),true));//如果为 true,则将字节写入文件末尾处,而不是写入文件开始处 out.write("["+df.format(new Date()) + "] <" + msg_type + "> :" + msg); out.newline(); out.newline(); }catch(IOException e){ e.printStackTrace(); }finally{ try{ if(out!=null){ out.close(); } }catch(IOException e){ e.printStackTrace(); } } }
private static String getLogFilePath(){ File logDir = new File(filePath); if(!logDir.exists()){ logDir.mkdir(); } int i = 1; String fileName = filePath + "log_"; File file = new File(fileName + i + ".txt"); while(file.exists() && file.length() > 30000L) { i++; file = new File(fileName + i + ".txt"); } return fileName + i + ".txt" }}
//*****************************The OptionPanel Dialog Class for the Log Classimport javax.swing.JOptionPane;
public class OptionPanel { private static final String appTitle = PropertyReader.getResource("App_Title");//suposing the file has been established and the property app-title stands for the name of application private static final MainFrame frame = MainFrame.getMainFrame();
public static void showWarningMsg(String msg){ JOptionPane.showMessageDialog(frame,msg,appTitle,JOptionPane.WARNING_MESSAGE); } public static void showErrMsg(String msg){ JOptionPane.showMessageDialog(frame,msg,appTitle,JOptionPane.Error_MESSAGE); } public static int showConfirmMsg(String msg){ return JOptionPane.showConfirmDialog(frame,msg,appTitle,JOptionPane.YES_NO_OPTON,JOptionPane.QUESTION_MESSAGE); }}
In a project, we can write a class to read the properties.As following,import java.io.InputStream;import java.io.IOException;import java.util.Properties;
public class PropertyReader{ private static Properties property = null; static{ InputSteam stream = null; try{ stream=PropertyReader.class.getResourceAsStream("/resource/properties.properties"); property = new Properties(); property.load(stream); }catch(IOException e){ e.printStackTrace(); }finally{ if(stream != null){ try{ stream.close(); }catch(IOException e){ e.printStackTrace(); } } } } public static String getResource(String key){ if(property == null){ return null;// init error; } return property.getProperty(key); }}