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); }}
<1>Module Usually,in enterprise software,it presents the logic of the commercial bean.To the SE Swing GUI,it contains data and the rules that govern access to and updates of this data. <2>View It specifies exactly how the module data should be presented,changing with the model data.<3>Controller Controller defines all the methods connecting to the user action which are called by the View.
Most developers have heard of, and possibly used, scripting languages such as Ruby, JavaScript, and Python. These dynamic languages are enjoying a resurgence in popularity, largely because of their flexibility and simplicity, and the productivity gains they promise.
Java 6 comes with built-in support for scripting languages. You can embed scripts in various scripting languages into your Java applications, passing parameters, evaluating expressions, and retrieving results. And you can do it all pretty seamlessly.
First of all, you obtain a new ScriptEngine object from a ScriptEngineManager, as shown here:
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
Each scripting language has its own unique identifier. The "js" here means you're dealing with JavaScript.
Now you can start having some fun. Interacting with a script is easy and intuitive. You can assign scripting variables using the put() method and evaluate the script using the eval() method,. which returns the most recently evaluated expression processed by the script. And that pretty much covers the essentials. Here's an example that puts it all together:
engine.put("cost", 1000);String decision = (String) engine.eval("if ( cost >= 100){ " +"decision = 'Ask the boss'; " +"} else {" +"decision = 'Buy it'; " +"}");assert ("Ask the boss".equals(decision));
You can do more than just pass variables to your scripts— you can also invoke Java classes from within your scripts. Using the importPackage() function enables you to import Java packages, as shown here:
engine.eval("importPackage(java.util); " + "today = new Date(); " + "print('Today is ' + today);");
Another cool feature is the Invocable interface, which lets you invoke a function by name within a script. This lets you write libraries in scripting languages, which you can use by calling key functions from your Java application. You just pass the name of the function you want to call, an array of Objects for the parameters, and you're done! Here's an example:
engine.eval("function calculateInsurancePremium(age) {...}"); Invocable invocable = (Invocable) engine; Object result = invocable.invokeFunction("calculateInsurancePremium", new Object[] {37});
You actually can do a fair bit more than what I've shown here. For example, you can pass a Reader object to the eval() method, which makes it easy to store scripts in external files, or bind several Java objects to JavaScript variables using a Map-like Binding object. You can also compile some scripting languages to speed up processing. But you probably get the idea that the integration with Java is smooth and well thought-out.