1. 程式人生 > 其它 >JDBC資料來源配置及管理

JDBC資料來源配置及管理

JDBC驅動程式

JDBC驅動程式元件為java程式連線不同資料庫系統提供服務,它通常由資料庫系統方開發提供或由第三方提供。

下載對應不同資料庫的JDBC

資料庫連線資訊配置

URL:連線資料庫系統資源描述符

DriverClass:資料庫系統驅動類名稱

UserName:登入資料庫系統使用者名稱稱

Password:登入資料庫系統使用者名稱密碼

Others:其它配置資訊

資料庫連線資訊配置

資料庫連線資訊通常以普通文字屬性檔案進行配置dbconf.properties

讀取連線配置檔案資訊

定義繼承Properties元件的類實現讀取資訊

提供資料來源管理元件連線資訊

源程式中不必修改資料庫任何連線屬性

建立資料來源管理元件

提供Connection連線介面物件

提供StatementSQL語句執行介面物件

關閉資料庫連線通用功能

## 資料庫屬性配置資訊
jdbc_url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
jdbc_driver=oracle.jdbc.driver.OracleDriver
jdbc_user=system
jdbc_password=system
package com.xzit.db.util;

import java.util.ResourceBundle;

public final class Env {
    
/* 儲存從屬性檔案讀取的資料庫屬性配置資訊 */ public static final String JDBC_URL; public static final String JDBC_DRIVER; public static final String JDBC_USER; public static final String JDBC_PASSWORD; static { /* 獲取配置檔案的名稱,使用getBundle()方法 */ ResourceBundle resourceBundle = ResourceBundle.getBundle("dbconf");//
不需要寫字尾名 /* 獲取資原始檔中的資訊:使用getString()方法 */ JDBC_URL=resourceBundle.getString("jdbc_url"); JDBC_DRIVER=resourceBundle.getString("jdbc_driver"); JDBC_USER=resourceBundle.getString("jdbc_user"); JDBC_PASSWORD=resourceBundle.getString("jdbc_password"); } public static void main(String[] args) { System.out.println(Env.JDBC_DRIVER); System.out.println(Env.JDBC_URL); System.out.println(Env.JDBC_USER); } } //public final class Env extends Properties { // /* 儲存從屬性檔案讀取的資料庫屬性配置資訊 */ // public static final String JDBC_URL; // public static final String JDBC_DRIVER; // public static final String JDBC_USER; // public static final String JDBC_PASSWORD; // /* 資料庫連線屬性檔案路徑和名稱 */ // private static final String CONF_FILE="com/xzit/conf/dbconf.properties"; // private static Env env; // static { // if(env == null) // env = new Env(); // /* 獲取當前程式釋出的類路徑 */ // String classes = env.getClass().getClassLoader().getSystemResource("").getPath(); // System.out.println(classes); // //獲取指向屬性檔案的輸入流 // InputStream input = env.getClass().getClassLoader().getResourceAsStream(CONF_FILE); // try { // env.load(input);//載入檔案流 // } catch (IOException e) { // e.printStackTrace(); // }finally { // try { // input.close(); // } catch (IOException e) { // e.printStackTrace(); // } // } // /* 利用properties中繼承方法getProperty獲取屬性檔案資訊 */ // JDBC_URL=env.getProperty("jdbc_url"); // JDBC_DRIVER=env.getProperty("jdbc_driver"); // JDBC_USER=env.getProperty("jdbc_user"); // JDBC_PASSWORD=env.getProperty("jdbc_password"); // } // // private Env(){ // String a = env.JDBC_DRIVER; // } // // public static void main(String[] args) { // System.out.println(Env.JDBC_DRIVER); // System.out.println(Env.JDBC_URL); // // } //}
package com.xzit.db.util;

import java.sql.*;

/*
* 資料來源管理元件,提供最基本的通用的資料庫連線
* */
public final class DataSourceManager {

    /*
    * 提供目標資料來源的連線通用方法
    * */
    public static Connection getConnection(){

        Connection conn = null;
        /* 載入資料庫驅動 */
        try {
            /* 載入資料庫驅動 */
            Class.forName(Env.JDBC_DRIVER);
            conn = DriverManager.getConnection(Env.JDBC_URL,Env.JDBC_USER,Env.JDBC_PASSWORD);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conn;
    }

    /*
    * 關閉資料庫連線的通用方法
    * */
    public static void close(Connection conn){//關閉Connection

        try {
            if(conn != null && conn.isClosed()){
                conn.close();   //關閉資料庫連線
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }

    public static void close(Statement state){
        try {
            if (state != null && state.isClosed()){
                state.close();
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }

    public static void close(ResultSet set){
        try {
            if (set != null && !set.isClosed()){
                set.close();
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }
}
<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.example</groupId>
  <artifactId>2021_10_13_jdbcapp</artifactId>
  <version>1.0-SNAPSHOT</version>

  <name>2021_10_13_jdbcapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc8 -->
    <dependency>
      <groupId>com.oracle.database.jdbc</groupId>
      <artifactId>ojdbc8</artifactId>
      <version>12.2.0.1</version>
    </dependency>
  </dependencies>

  <build>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
        <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
        <plugin>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.7.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>