--------------------------------1-------------------------
package com;
import java.io.InputStream;
import java.util.Properties;
import com.sun.org.apache.xml.internal.security.keys.content.RetrievalMethod;
/*
*把配置文件讀到內存 以後方便ConnectionManager讀取
*/
public final class Env extends Properties {
private static Env instrance;//聲明一個儲存類的變量
public static Env getInstance() {
if(instrance!=null)
{
return instrance;//不爲空時直接通過變量獲取類的對象
}
else {
makeInstrance();//調用實例化方法
return instrance;
}
}
private static void makeInstrance()
{
if(instrance==null)
{
instrance=new Env();//調用構造方法讀取
}
}
private Env()//構造方法
{//把配置文件讀取放到內存中現在是在src下的路徑
InputStream is=getClass().getResourceAsStream("/connection.properties");
try {
load(is);//加載到內存當中,方便讀取
} catch (Exception e) {
System.err.println("錯誤:沒有讀取配置文件,請確定connection.properties文件是否存在");
}
}
}
--------------2-----------------------
package com;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class ProReader {
/*
* 讀取內存裏的信息獲取連接
*/
public static synchronized Connection getConnection() {
//Env 靜態類.方法()則返回一個實例,
//調用Properties類的getProperty()獲取hashtabale的value值
String driverClassName=Env.getInstance().getProperty("DRIVER");//驅動
String url=Env.getInstance().getProperty("URL");//數據庫url
String password=Env.getInstance().getProperty("PW");//密碼
String username=Env.getInstance().getProperty("NAME");//數據庫登錄名
Connection connection=null;
try {
Class.forName(driverClassName);
connection=DriverManager.getConnection(url,username,password);//寫入三個參數
} catch (Exception e) {
e.printStackTrace();
}
return connection;
}
/*
* 關閉連接
*/
public static void closeAll(PreparedStatement pstmt,Connection con,ResultSet rs)
{
try {
if (pstmt!=null) {
pstmt.close();
}
if (con!=null) {
con.close();
}
if (rs!=null) {
rs.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}