1.通過Driver接口獲取數據庫連接(尚硅谷筆記)

數據持久化:把數據保存到可掉電式存儲設備中以供之後使用。

主要應用:將內存中的數據存儲在關係型數據庫、磁盤文件、XML中。

在Java中,數據庫存取技術:

1)JDBC直接訪問數據庫(基石)

2)JDO技術

3)第三方O/R工具,如Hibernate,ibatis等。

JDBC是一個獨立於特定數據庫管理系統、通用的SQL數據庫存取和操作的公告接口(一組API),定義了用來訪問數據庫的標準Java類庫

JDBC爲訪問不同的數據庫提供了一種統一的途徑。

JDBC的目標是使Java程序員使用JDBC可以連接任何提供了JDBC驅動程序的數據庫系統。

JDBC接口(API)包括兩個層次:

面向應用的API:Java API,抽象接口,供應用程序開發人員使用(連接數據庫、執行SQL語句、獲得結果)。

面向數據庫的API:Java Driver API,供開發商開發數據庫驅動程序用。

JDBC驅動程序:各個數據庫廠商根據JDBC的規範製作的JDBC實現類的類庫

本地協議的純Java驅動程序:完全使用Java編寫,通過與數據庫建立的Socket連接,採用具體與廠商的網絡協議把JDBC調用轉換爲直接連接的網絡調用。

JDBC API是一系列的接口, 它使得應用程序能夠進行數據庫聯接,執行SQL語句,並且得到返回結果。

Java.sql.Driver接口是數據庫廠商必須提供實現的接口,能從中獲取數據庫連接

在程序中不需要直接去訪問實現了Driver接口的類,而是由驅動程序管理器類(java.sql.DriverManager)去調用這些Driver實現。

加入mysql驅動程序

1)在當前項目下新建lib目錄

2)把mysql-connector-java-5.1.7-bin.jar複製到lib目錄下

3)右鍵build-path,add to duildpath加到類路徑下。

調用Driver類的connect()方法建立到數據庫的連接:

JDBC URL用於標識一個被註冊的驅動程序,驅動程序管理器通過這個URL選擇正確的驅動程序,從而建立到數據庫的連接。

JDBC URL的標準由三部分組成,各部分間用冒號分隔。

-jdbc:<子協議>:<子名稱>

-協議:JDBC URL中的協議總是jdbc

-子協議:子協議用於標識一個數據庫驅動程序

-子名稱:一種標識數據庫的方法,子名稱可以依不同的子協議而變化,用子名稱的目的是爲了定位數據庫提供足夠的信息。

例:"jdbc:mysql://localhost/users"

public static void testDriver() throws SQLException {
	//1.創建一個Driver實現類的對象
	Driver driver=new com.mysql.jdbc.Driver();
	//2.準備連接數據庫的基本信息:url,user,password
	String url="jdbc:mysql://localhost:3306/users";
	Properties info=new Properties();
	info.put("user", "root");
	info.put("password","12345678");
	//3.調用Driver接口的connect(url,info)獲取數據庫連接
	Connection connection=driver.connect(url, info);
	System.out.println(connection);
}

編寫一個通用方法發,在不修改源程序的情況下,可以獲取任何數據庫的連接。

解決方案:把數據庫驅動Driver實現類的全類名、url、user、password放入一個配置文件中,通過修改配置文件的方式實現和具體的數據庫解耦。

public static Connection getConnection() throws Exception{
        //1.準備連接數據庫的4個字符串
	//驅動的全類名
	String driverClass=null;
	String jdbcUrl=null;
	String user=null;
	String password=null;
	//加載配置文件
	ClassLoader loader = Thread.currentThread().getContextClassLoader();
	Properties properties=new Properties();
	properties.load(loader.getResourceAsStream("jdbc.properties"));
        //讀取類路徑下的jdbc.properties文件中連接數據庫的4個字符串
	driverClass=properties.getProperty("driver");//讀取接口類型
	jdbcUrl=properties.getProperty("jdbcUrl");
	user=properties.getProperty("user");
	password=properties.getProperty("password");
	//2.創建一個Driver實現類的對象
	Driver driver=(Driver)Class.forName(driverClass).newInstance();//反射
        properties.put("user", user);
	properties.put("password",password);
	//3.調用Driver接口的connect(url,info)獲取數據庫連接
	Connection connection=driver.connect(jdbcUrl, properties);
	return connection;
}

 

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