📄 configurator.java
字号:
package advdb;
import java.sql.*;
import java.io.*;
import java.net.*;
import java.util.*;
public class Configurator
{
private final static String SETTING_FILE = "xmlapp.properties";
private final static String SOURCE_FILE = "students.xml";
private final static String PROPERTY_DRIVER = "JDBCDriver";
private final static String PROPERTY_CONNSTR = "JDBCConnection";
private final static String PROPERTY_USER = "DatabaseUser";
private final static String PROPERTY_PASSWORD = "DatabasePassword";
static final private Configurator instance
= new Configurator();
private String projecthome;
private String apphome;
private String driverName;
private String connString;
private String dbUser;
private String dbPassword;
private Connection conn;
private Configurator(){
parseAppHome();
loadSettings();
};
static public Configurator getInstance() {
return instance;
}
public String getAppHome() {
return this.apphome;
}
public String getProjectHome() {
return this.projecthome;
}
public String getDriverName() {
return driverName;
}
public String getConnectionString() {
return connString;
}
public String getDatabaseUser() {
return dbUser;
}
public String getDatabasePassword() {
return dbPassword;
}
public Connection getConnection() throws Exception
{
if (conn == null || conn.isClosed()) {
Class.forName(driverName);
conn = DriverManager.getConnection(connString, dbUser, dbPassword);
}
return conn;
}
public void closeConnection() throws SQLException
{
if (conn != null && !conn.isClosed()) conn.close();
}
private void parseAppHome() {
try{
String res = "/";
URL url = Configurator.class.getResource(res);
File dir = new File(url.toURI());
apphome = dir.getCanonicalPath();
String str = apphome.toLowerCase();
if (str.charAt(str.length()-1) == File.separatorChar) {
apphome = apphome.substring(0, apphome.length()-1);
str = str.substring(0, str.length()-1);
}
projecthome = str.endsWith("classes")
? apphome.substring(0, apphome.length()-7)
: apphome+File.separator;
apphome += File.separator;
}catch(Exception ex) {
// This will never happen
apphome = "." + File.separator;
}
}
public void loadSettings()
{
InputStream in = null;
try {
Properties props = new Properties();
String res = "/" + SETTING_FILE;
in = Properties.class.getResourceAsStream(res);
props.load(in);
this.driverName = props.getProperty(PROPERTY_DRIVER);
this.connString = props.getProperty(PROPERTY_CONNSTR);
this.dbUser = props.getProperty(PROPERTY_USER);
this.dbPassword = props.getProperty(PROPERTY_PASSWORD);
}catch(Exception e) {
// Log it or not
}finally{
if (in != null) try{in.close();}catch(Exception ex){}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -