jdbc中從properties文件中讀取數據庫連接字符串

--------------------------------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();
 }
 
}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章