⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 configurator.java

📁 本人写的另一个XML实例化小程序
💻 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 + -