溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

JDBC連接Mysql的方式有哪些

發(fā)布時(shí)間:2023-04-03 15:54:31 來源:億速云 閱讀:90 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“JDBC連接Mysql的方式有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“JDBC連接Mysql的方式有哪些”吧!

測(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();
}

到此,相信大家對(duì)“JDBC連接Mysql的方式有哪些”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI