JDBC注冊驅動程序3種方式


以MySQL的驅動為例,介紹注冊驅動程序的3種方式

1:Class.forName("com.mysql.cj.jdbc.Driver");// 加載數據庫驅動

 1 package com.pine.interview.jdbc;
 2 
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.SQLException;
 6 
 7 public class Driver1 {
 8     public static void main(String[] args) throws ClassNotFoundException, SQLException {
 9         Class.forName("com.mysql.cj.jdbc.Driver");// 加載數據庫驅動
10         String url = "jdbc:mysql://localhost:3306/pine?serverTimezone=UTC";// 數據庫連接子協議
11         Connection conn = DriverManager.getConnection(url, "root", "root");
12         System.out.println(conn);
13         conn.close();
14     }
15 }

2:System.setProperty("jdbc.drivers","com.mysql.cj.jdbc.Driver");// 加載數據庫驅動

 1 package com.pine.interview.jdbc;
 2 
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.SQLException;
 6 
 7 public class Driver2 {
 8     public static void main(String[] args) throws ClassNotFoundException, SQLException {
 9         System.setProperty("jdbc.drivers","com.mysql.cj.jdbc.Driver");// 加載數據庫驅動
10         String url = "jdbc:mysql://localhost:3306/pine?serverTimezone=UTC";// 數據庫連接子協議
11         Connection conn = DriverManager.getConnection(url, "root", "root");
12         System.out.println(conn);
13         conn.close();
14         /**
15             * 可以同時導入多個jdbc驅動,中間用冒號“:”分開
16               比如System.setProperty("jdbc.drivers","XXXDriver:XXXDriver:XXXDriver");
17          */
18     }
19 }

3:new com.mysql.cj.jdbc.Driver();// 加載數據庫驅動

 1 package com.pine.interview.jdbc;
 2 
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.SQLException;
 6 
 7 public class Driver3 {
 8     public static void main(String[] args) throws SQLException {
 9         new com.mysql.cj.jdbc.Driver();// 加載數據庫驅動
10         String url = "jdbc:mysql://localhost:3306/pine?serverTimezone=UTC";// 數據庫連接子協議
11         Connection conn = DriverManager.getConnection(url, "root", "root");
12         System.out.println(conn);
13         conn.close();
14     }
15 }

推薦使用方法1、方法2,其中方法2可以一次性注冊多個驅動

不推薦使用方法3,因為編譯時會依賴mysql的驅動包,而且靜態代碼塊中會進行驅動的注冊,new 出來的 Driver的實例是多余無用的

如下圖所示:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM