Java之JDBC 通過加載properties配置文件連接數據庫


  通常情況下,我們通過JDBC連接數據庫的時候,不會將數據庫相關配置寫死,因為到時候數據庫一有改動,就要重新打包部署到服務器或者替換相關的.class文件,這樣非常不靈活。因此,咱們一般會通過讀取配置文件的方式來加載數據庫相關配置,這樣到時候只改動配置文件就可以啦,非常的方便。

  

  直接上代碼,下面是java文件:

 1 public class SyncDataFn {
 2     
 3     private static String driver;
 4     private static String url;
 5     private static String username;
 6     private static String password;
 7     
 8     static {
 9         try {
10             // 1.通過當前類獲取類加載器
11             ClassLoader classLoader = SyncDataFn.class.getClassLoader();
12             // 2.通過類加載器的方法獲得一個輸入流
13             InputStream in = classLoader.getResourceAsStream("../config/jdbc-interface.properties");
14             // 3.創建一個properties對象
15             Properties props = new Properties();
16             // 4.加載輸入流
17             props.load(in);
18             // 5.獲取相關參數的值
19             driver = props.getProperty("driverClassName");
20             url = props.getProperty("url");
21             username = props.getProperty("username");
22             password = props.getProperty("password");
23         } catch (IOException e) {
24             e.printStackTrace();
25         }
26  
27     }
28     
29     public int jxJson() throws Exception {
30         // 創建Statement用於執行SQL語句
31         Statement stmt = null;
32         String strSQL = "";
33         Connection connection = null;
34         
35         //定義同步數據的條數
36         int count = 0;
37         
38         try {
39             Class.forName(driver);
40             connection = DriverManager.getConnection(url, username, password);
41         } catch (ClassNotFoundException e) {
42             e.printStackTrace();
43         } catch (SQLException e) {
44             e.printStackTrace();
45         }
46         
47         // 先關閉Statement
48         if (stmt != null)
49             try {
50                 stmt.close();
51             } catch (SQLException e) {
52                 e.printStackTrace();
53             }
54         // 后關閉Connection
55         if (connection != null)
56             try {
57                 connection.close();
58             } catch (SQLException e) {
59                 e.printStackTrace();
60             }
61         log.info("當前時間===" + new Date());
62         log.info("同步結束");
63         log.info("共更新了"+ count + "條數據");
64         return count;
65     }
66 }

 

  下面是properties文件:

1 driverClassName=oracle.jdbc.OracleDriver
2 url=jdbc:oracle:thin:@172.16.35.35:1521:ecard
3 username=ecard
4 password=ecard

  

  其中有個坑是調用classLoader.getResourceAsStream()獲取properties文件路徑的時候,剛開始怎么也獲取不到,后來問了度娘才知道,他的起始路徑是基於.class的。

  總結:如果你想獲得配置文件,你得從最終生成的.class文件為着手點,不要以.java文件的路徑為出發點,因為真正使用的就是.class文件。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM