Java讀取properties文件連接數(shù)據(jù)庫的方法示例
之前我們在入門jdbc的時候,常用這種方法連接數(shù)據(jù)庫:
package util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionManager {
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/mail";
String username = "root";
String password = "root";
conn = DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
}
相信剛接觸jdbc,用的都是這種方式,這種方式也是比較好理解的,加載驅(qū)動,帶著url,用戶名,密碼連接數(shù)據(jù)庫,代碼簡單易懂。同時也帶來了一個最重要的問題,當有一天我們想要換數(shù)據(jù)庫的時候,怎么辦?驅(qū)動也變了,什么都變了,你可以說改代碼啊,程序就是方便我們的,處理事情的方式越簡單越好,這樣更改代碼的方式很low啊,也許我們只是改了四行代碼。代碼的復用性我們可能都沒有實現(xiàn)。
我們定義好一個配置文件,讓程序來讀取這個文件,這個程序是固定的,只是配置文件我們自己來寫,這樣做的好處就是,我
們在更改數(shù)據(jù)庫的時候,不需要更改代碼,提高了代碼的復用性。
先介紹一下propertie文件: Java中的properties文件是一種配置文件,主要用于表達配置信息,文件類型為*.properties,格式為文本文件,文件的內(nèi)容是格式是 "鍵=值"的格式。
可以理解為Map結(jié)構(gòu),鍵值對的方式存儲,可以根據(jù)鍵來找到值。下圖是java連接mysql時候需要的信息(我的數(shù)據(jù)庫是mail,username和password都是root,讀者根據(jù)自己的數(shù)據(jù)庫來寫)。一個鍵對應一個值,用=連接。

測試代碼:
package util;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class JdbcUtil {
private static String dirverName;
private static String url;
private static String username;
private static String password;
// 利用靜態(tài)塊i,在類加載的時候就被執(zhí)行
static{
try {
// 用流讀入properties配置文件
InputStream inputStream = JdbcUtil.class.getClassLoader()
.getResourceAsStream("datebase.properties");
Properties properties = new Properties();
// 從輸入字節(jié)流讀取屬性列表(鍵和元素對)
properties.load(inputStream);
// 用此屬性列表中指定的鍵搜索屬性,獲取驅(qū)動,url,username,password
dirverName = properties.getProperty("driverName");
url = properties.getProperty("url");
username = properties.getProperty("username");
password = properties.getProperty("password");
System.out.println(dirverName);
System.out.println(url);
System.out.println(username);
System.out.println(password);
// 加載驅(qū)動
Class.forName(dirverName);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
// 獲取數(shù)據(jù)庫連接
public static Connection getConnection() {
Connection conn=null;
try {
conn=DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
//測試
public static void main(String[] args) {
JdbcUtil.getConnection();
}
}
輸出:
com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/mail root root
這樣做,我們在想要換數(shù)據(jù)庫的時候只要把properties文件中的值更改了就可以,代碼是不需要修改的,因為jdbc是固定的。在其他的配置方面也可以使用這種方法,提高了代碼的復用性
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳解Java8與Runtime.getRuntime().availableProcessors()
這篇文章主要介紹了詳解Java8與Runtime.getRuntime().availableProcessors(),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-06-06
springboot 設置CorsFilter跨域不生效的解決
這篇文章主要介紹了springboot 設置CorsFilter跨域不生效的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11

