JDBC連接不同數據庫(從基礎來了解耦合)

JDBC連接不同數據庫的實現步驟:

一、在Myeclipse或者Eclipse中新建JavaProject,命名:JDBCTest;

二、在src目錄下新建類:JDBC.java,同時輸入包名:com.jdbc,同時在src目錄下新建                 jdbc.properties配置文件;

三、建立一個jar文件,將不同廠商的數據庫驅動文件放置在此目錄下;

四、右鍵點擊驅動文件,點擊 Build Path --> add class path ,此時在引用類庫中會出現數據庫       jar 包;

    此時目錄結構如下


wKioL1Ty0J-QUgICAAC0rY9nY5k951.jpg


  作爲程序猿,還是直接上代碼較爲實際!

  jdbc.properties:


driver=com.mysql.jdbc.Driver

jdbcUrl=jdbc:mysql:://localhost:3306/test

user=root

password=root


  JDBC.java:


package com.jdbc;

import java.io.InputStream;

import java.sql.Connection;

import java.sql.Driver;

import java.util.Properties;

   /**

    * Driver是一個驅動接口,不同的數據庫廠商必須提供實現的接口,才能獲取數據源,

    * 即用Driver的實現類對象來獲取數據庫的連接。

    */

class JDBC{

    /**

     * 此方法耦合度較高,分析原因如下:

     *       1、加載數據庫的驅動是寫死的,即 mysql,不夠靈活(...=new com.mysql.jdbc...);

     *       2、數據庫的用戶名和密碼也是直接寫在代碼中的,不便於修改;

     *       3、數據庫的 URL 也是寫在代碼中的,若需要更換數據庫,不便於修改。

     */

    public static void connTest01() throws Exception{

// 用mysql來實現Driver接口

Driver driver = new com.mysql.jdbc.Driver();

Properties properties = new Properties();

        //mysql的用戶名和密碼,注意此時鍵的值必須是 user 和 password,可以看看幫助文檔。

        properties.put("user","root");

        properties.put("password","root");

        String URL = "jdbc:mysql://localhost:3306/test";

        //Connection也是一個接口,記得導入包的時候導正確,是 java.sql.Connection包;

        Connection conn = driver.connect( URL , properties );

        System.out.println("Connection對象的測試一");

        System.out.println(conn);

        }

    /**

     * 此方法相對於上面的方法耦合度較低,將連接數據庫的一些參數寫入jdbc.properties文件

     * 中,方便以後進行操作。

     */

    public static void connTest02() throws Exception{

    //運用輸入流獲取配置文件(下面一行代碼運行時會有報錯,忽視直接運行就可以了,當            //然,你也可以使用其他方法來加載配置文件)

       InputStream is = getClass().getClassLoader().getResourceAsStream("jdbc.properties");

       Properties properties = new Properties();

       properties.load(is);

       String driverClass = properties.getProperty("driver");

       String URL = properties.getProperty("jdbcURL");

       String user = properties.getProperty("user");

       String password = properties.getProperty("password");

//運用反射來加載驅動,注意:需要強轉,因爲是Object類型。

       Driver driver = (Driver) Class.forName(driverClass).newInstance();

       Properties info = new Properties();

       info.put("user", user);

       info.put("password", password);

       Connection conn = driver.connect(URL, info);

       System.out.println("Connection對象的測試二");

       System.out.println(conn);

   }

   /**

    *  測試

    * @throws Exception 

    */

    public static void main(String[] args) throws Exception {

//connTest01();

        connTest02();

    }

}


此代碼可以直接運行。以上的例子主要是針對 mysql 數據庫的,如果需要連接其他數據庫,在jdbc.properties修改信息就可以了,而不必在代碼裏面修改相關的內容。

總結:剛開始寫此博文的時候,運用的是JUnit4單元來測試的,就不需要main方法了,結果將博文中的代碼拷貝到myeclipse中會報錯,從“度娘”查詢解決了2,3個小時,結果可能是JUnit4版本的問題,(也沒換版本)最後只有用main方法來測試了。當然了,此博文的重點是連接不同數據庫。


對於以上內容,若有異議,歡迎留言。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章