1. 程式人生 > >java通過配置屬性檔案連線Oracle資料庫

java通過配置屬性檔案連線Oracle資料庫

     做web專案開發中,通過配置屬性檔案實現連線資料庫(Oracle)的功能。    1.將屬性檔案放在WEB-INF/classes目錄下      例如屬性檔案:demo_db.properties      DRIVERS=oracle.jdbc.driver.OracleDriver
     URL=jdbc:oracle:thin:@localhost:1521:MyOra
     USER=user
     PASSWORD=123456
   2.寫一個連線資料庫的類     例如:DBUtils.java
  1. package com.ctcjz.db;
  2. import java.sql.Connection;
  3. import java.sql.DriverManager;
  4. import java.sql.ResultSet;
  5. import java.sql.SQLException;
  6. import java.sql.Statement;
  7. import java.util.ResourceBundle;
  8. publicclass DBUtils {
  9. privatestaticfinal String OPTION_FILE_NAME = "demo_db";
  10. privatestatic String drivers;
  11. privatestatic String url;
  12. privatestatic String user;
  13. privatestatic String password;
  14. static {
  15.         ResourceBundle res = ResourceBundle.getBundle(OPTION_FILE_NAME);
  16.         drivers = res.getString("DRIVERS").trim();
  17.         url = res.getString("URL").trim();
  18.         user = res.getString("USER").trim();
  19.         password = res.getString("PASSWORD").trim();
  20.     }
  21. publicstatic Connection getConnection() throws SQLException {
  22.         Connection conn = null;
  23. try {
  24.             Class.forName(drivers).newInstance();
  25.             conn = DriverManager.getConnection(url, user, password);
  26.         } catch (Exception e) {
  27.             e.printStackTrace();
  28.         }
  29. if (conn == null) {
  30. thrownew SQLException("ctcjz.DBUtils: Cannot get connection.");
  31.         }
  32. return conn;
  33.     }
  34. publicstaticvoid close(Connection conn) {
  35. if (conn == null)
  36. return;
  37. try {
  38.             conn.close();
  39.         } catch (SQLException e) {
  40.             System.out.println("ctcjz.DBUtils: Cannot close connection.");
  41.         }
  42.     }
  43. publicstaticvoid close(Statement stmt) {
  44. try {
  45. if (stmt != null) {
  46.                 stmt.close();
  47.             }
  48.         } catch (SQLException e) {
  49.             System.out.println("ajax.DBUtils: Cannot close statement.");
  50.         }
  51.     }
  52. publicstaticvoid close(ResultSet rs) {
  53. try {
  54. if (rs != null) {
  55.                 rs.close();
  56.             }
  57.         } catch (SQLException e) {
  58.             System.out.println("ctcjz.DBUtils: Cannot close resultset.");
  59.         }
  60.     }
  61. }
        3.具體使用
  1. //獲取指標列表
  2.         String getAreaList() {
  3.             JSONArray array = new JSONArray(); //定義JSON陣列
  4.             String sql = "select  AREACODE,AREANAME,STATUS from modelarea";//定義SQL語句
  5.             Connection conn = null//宣告Connection物件
  6.             PreparedStatement pstmt = null//宣告PreparedStatement物件
  7.             ResultSet rs = null//宣告ResultSet物件
  8. try {
  9.                 conn = DBUtils.getConnection(); //獲取資料庫連線
  10.                 pstmt = conn.prepareStatement(sql); //根據sql建立PreparedStatement
  11.                 rs = pstmt.executeQuery(); //執行查詢,返回結果集
  12. while (rs.next()) {
  13.                     JSONObject obj = new JSONObject();
  14.                     obj.put("areaCode", rs.getString(1));
  15.                     obj.put("areaName", rs.getString(2));
  16.                     obj.put("status", rs.getString(3));
  17.                     array.add(obj);
  18.                 }
  19.             } catch (SQLException e) {
  20.                 System.out.println(e.toString());
  21.             } finally {
  22.                 DBUtils.close(rs); //關閉結果集
  23.                 DBUtils.close(pstmt); //關閉PreparedStatement
  24.                 DBUtils.close(conn); //關閉連線
  25.             }
  26. return array.toString();
  27.         }