JDBC資料來源配置及管理
阿新 • • 發佈:2021-10-14
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>