JDBC連接Mysql的5種方式實(shí)例總結(jié)
測(cè)試環(huán)境說明
mysql數(shù)據(jù)庫:jdbc:mysql://localhost:3306/test
IDE:IDEA 2022
JDK:JDK8
mysql:mysql 5.7
JDBC:5.1.37
第一種方式
使用靜態(tài)加載驅(qū)動(dòng)方式,連接mysql
這種方式靈活性差,依賴性強(qiáng)
public void connection01() throws SQLException {
// 注冊(cè)驅(qū)動(dòng)
Driver driver = new Driver();
// 創(chuàng)建Properties對(duì)象,用于保存mysql賬號(hào)和密碼鍵值對(duì)
Properties properties = new Properties();
properties.setProperty("user", "root");
properties.setProperty("password", "123456");
String url = "jdbc:mysql://localhost:3306/test";
// 得到mysql的連接
Connection connection = driver.connect(url, properties);
// 得到可以與mysql語句進(jìn)行交互的對(duì)象
Statement statement = connection.createStatement();
// 關(guān)閉與 mysql語句進(jìn)行交互的對(duì)象
statement.close();
// 關(guān)閉與mysql的連接
connection.close();
第二種方式
在第一種方式的基礎(chǔ)上使用反射動(dòng)態(tài)加載驅(qū)動(dòng),依賴性減小、靈活性提高
public void connection02() throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException {
// 使用反射動(dòng)態(tài)加載mysql驅(qū)動(dòng)件程序
Class<?> aClass = Class.forName("com.mysql.jdbc.Driver");
Driver driver = (Driver) aClass.newInstance();
// 創(chuàng)建Properties對(duì)象,用于保存mysql賬號(hào)和密碼鍵值對(duì)
Properties properties = new Properties();
properties.setProperty("user", "root");
properties.setProperty("password", "123456");
String url = "jdbc:mysql://localhost:3306/test";
// 得到mysql的連接
Connection connection = driver.connect(url, properties);
// 得到可以與mysql語句進(jìn)行交互的對(duì)象
Statement statement = connection.createStatement();
// 關(guān)閉與 mysql語句進(jìn)行交互的對(duì)象
statement.close();
// 關(guān)閉與 mysql語句進(jìn)行交互的對(duì)象
connection.close();
}
第三種方式
使用DriverManager統(tǒng)一進(jìn)行管理
public void connection03() throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException {
// 使用反射動(dòng)態(tài)加載mysql驅(qū)動(dòng)件程序
Class<?> aClass = Class.forName("com.mysql.jdbc.Driver");
Driver driver = (Driver) aClass.newInstance();
String user = "root";
String password = "123456";
String url = "jdbc:mysql://localhost:3306/test";
// 使用DriverManager加載Driver
DriverManager.registerDriver(driver);
// 得到mysql的連接
Connection connection = DriverManager.getConnection(url, user, password);
// 得到可以與mysql語句進(jìn)行交互的對(duì)象
Statement statement = connection.createStatement();
// 關(guān)閉與 mysql語句進(jìn)行交互的對(duì)象
statement.close();
// 關(guān)閉與 mysql語句進(jìn)行交互的對(duì)象
connection.close();
}
第四種方式
其實(shí)Class.forName(“com.mysql.jdbc.Driver”)在底層已經(jīng)自動(dòng)加載好了Driver實(shí)例
所以Driver driver = (Driver) aClass.newInstance();這句話可以省略
這種方式也是開發(fā)中使用最多的一種方式
public void connection04() throws ClassNotFoundException, SQLException {
// 使用反射動(dòng)態(tài)加載mysql驅(qū)動(dòng)件程序
Class<?> aClass = Class.forName("com.mysql.jdbc.Driver");
String user = "root";
String password = "123456";
String url = "jdbc:mysql://localhost:3306/test";
// 得到mysql的連接
Connection connection = DriverManager.getConnection(url, user, password);
// 得到可以與mysql語句進(jìn)行交互的對(duì)象
Statement statement = connection.createStatement();
// 關(guān)閉與 mysql語句進(jìn)行交互的對(duì)象
statement.close();
// 關(guān)閉與 mysql語句進(jìn)行交互的對(duì)象
connection.close();
}
第五種方式
mysql5.16后可以不用Class.forName(“com.mysql.jdbc.Driver”);來加載驅(qū)動(dòng)了
從jdk1.5以后使用了jdbc4,不再需要顯示調(diào)用class.forName()注冊(cè)驅(qū)動(dòng)而是自動(dòng)調(diào)用驅(qū)動(dòng)jar包下META-INF\services\java.sql.Driver文本中的類名稱去注冊(cè)
建議還是寫上 CLass . forName(“com.mysql.jdbc.Driver”),更加明確,兼容性更好
這里同時(shí)使用properties配置文件實(shí)現(xiàn)動(dòng)態(tài)信息動(dòng)態(tài)讀取,靈活性得到提升
推薦使用這種方式
src/com/mysql/mysql.properties配置文件內(nèi)容如下
url=jdbc:mysql://localhost:3306/test user=root password=123456
連接mysql程序
public void connection05() throws SQLException, ClassNotFoundException, IOException {
// 使用Properties讀取配置文件下的內(nèi)容
Properties properties = new Properties();
properties.load(new FileInputStream("src/com/mysql/mysql.properties"));
String url = properties.getProperty("url");
String user = properties.getProperty("user");
String password = properties.getProperty("password");
// 得到mysql的連接
Connection connection = DriverManager.getConnection(url, user, password);
// 得到可以與mysql語句進(jìn)行交互的對(duì)象
Statement statement = connection.createStatement();
// 關(guān)閉與 mysql語句進(jìn)行交互的對(duì)象
statement.close();
// 關(guān)閉與 mysql語句進(jìn)行交互的對(duì)象
connection.close();
}
總結(jié)
到此這篇關(guān)于JDBC連接Mysql的5種方式的文章就介紹到這了,更多相關(guān)JDBC連接Mysql內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
idea perttier的使用和縮進(jìn)改為4不成功問題及解決
這篇文章主要介紹了idea perttier的使用和縮進(jìn)改為4不成功問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
eclipse實(shí)現(xiàn)可認(rèn)證的DH密鑰交換協(xié)議
這篇文章主要介紹了eclipse實(shí)現(xiàn)可認(rèn)證的DH密鑰交換協(xié)議,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06
Spring Boot集成Spring Cloud Eureka進(jìn)行服務(wù)治理的方法
本文通過詳細(xì)的步驟和代碼示例,介紹了如何在Spring Boot中集成Spring Cloud Eureka進(jìn)行服務(wù)治理,通過這種方式,可以有效地管理和維護(hù)微服務(wù)架構(gòu)中的服務(wù),感興趣的朋友跟隨小編一起看看吧2024-11-11
Java輕松使用工具類實(shí)現(xiàn)獲取wav時(shí)間長度
在Java中,工具類定義了一組公共方法,這篇文章將介紹Java中使用工具類來獲取一個(gè)wav文件的時(shí)間長度,感興趣的同學(xué)繼續(xù)往下閱讀吧2021-10-10
Java為何需要平衡方法調(diào)用與內(nèi)聯(lián)
這篇文章主要介紹了Java為何需要平衡方法調(diào)用與內(nèi)聯(lián),幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2021-01-01
IDEA報(bào)錯(cuò):java?找不到符號(hào)圖文解決過程
這篇文章主要給大家介紹了關(guān)于IDEA報(bào)錯(cuò):java?找不到符號(hào)解決的相關(guān)資料,運(yùn)行項(xiàng)目時(shí)Idea報(bào)錯(cuò),提示找不到符號(hào),但是這個(gè)類在項(xiàng)目里是存在的,網(wǎng)上找了很多文章都沒解決,浪費(fèi)了一個(gè)下午終于弄好了,記錄一下,需要的朋友可以參考下2023-08-08
如何實(shí)現(xiàn)在IDEA中導(dǎo)入一個(gè)模塊
這篇文章主要介紹了如何實(shí)現(xiàn)在IDEA中導(dǎo)入一個(gè)模塊方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04

