jdbc.properties文件的配置
使用配置文件訪問數據庫的優點是:
一次編寫隨時調用,數據庫類型發生變化只需要修改配置文件。
配置文件的設置:
在配置文件中,key-value對應的方式編寫。
不好意思我只用過這兩個數據庫 :)
----------Oracle
jdbc.driver_class=oracle.jdbc.driver.OracleDriver //數據庫驅動
jdbc.connection.url=jdbc:oracle:thin:@localhost:1521:orcl //數據庫地址
jdbc.connection.username=c##wuyong//數據庫名稱
jdbc.connection.password=//數據庫密碼
-----------mysql
jdbc.driver_class=com.mysql.jdbc.Driver
jdbc.connection.url=jdbc:mysql://127.0.0.1:3306/MySQL
jdbc.connection.username=root
jdbc.connection.password=Admin
讀取配置文件:
使用Properties對象的load()方法來實現配置文件的讀取,使用流來實現文件讀寫的操作。
為了避免重復編寫讀取配置文件的代碼,可以創建一個工具類:
//工具類--單列模式
public class ConfigManager {
//讀取配置文件(屬性文件)的工具類
private static ConfigManager configManager;
private static Properties properties;
//這里必須為private,避免外部new一個ConfigManager對象
private ConfigManager(){
String configFil="database.propertise";
properties=new Properties();
//getClassLoader()返回類加載器
//getResourceAsStream(configFil)返回InputStream對象
InputStream inputStream=ConfigManager.class.getClassLoader().getResourceAsStream(configFil);
try {
properties.load(inputStream);
inputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//通過單列模式設置實例化的個數
//對外開放的接口
public static ConfigManager getInstance(){
if (configManager==null) {
configManager=new ConfigManager();
return configManager;
}
return configManager;
}
//通過key獲取對應的value值
public String getString(String key){
return properties.getProperty(key);
}
}
使用工具類的方法:
//獲取數據庫連接
public boolean getConnection(){
//讀出配置信息
String driver=ConfigManager.getInstance().getString("jdbc.driver_class");
String url=ConfigManager.getInstance().getString("jdbc.connection.url");
String username=ConfigManager.getInstance().getString("jdbc.connection.username");
String password=ConfigManager.getInstance().getString("jdbc.connection.password");
try {
// 加載JDBC驅動
Class.forName(driver);
connection=DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
return true;
}