1. 程式人生 > >02jdbc web專案使用jdbc示例及不同版本呼叫jdbc的差異

02jdbc web專案使用jdbc示例及不同版本呼叫jdbc的差異

01web專案使用JDBC示例

建立Dynamic Web Project專案,複製上篇博文下載的壓縮包解壓後的jar檔案到WebContent/WEB-INF/lib目錄下,系統自動載入jar包

關於驅動jar包,目前只能下載兩種壓縮包一個是mysql-connector-java-5.1.47.zip,一個是mysql-connector-java-8.0.13.zip,兩個都可以使用,只是8.0版本的使用方式較之前有所改動,程式中再說這個問題

在Java Resources/src目錄下新建java包,建立java檔案,就可以使用jdbc訪問資料庫了

檢視驅動的java原始碼

在Java Resources/Libraries/Web App Libraries/目錄下,找到剛匯入的jar包,並展開,雙擊其中的一個Class檔案,會如下面圖片所示

點選圖片箭頭所示,進入下一步,如圖所示

將壓縮包新增到外部環境中,即可

jdbc程式設計示例:

一般情況下分為以下6步:

  1. 註冊驅動
  2. 獲取連線Connection
  3. 得到執行sql語句的物件Statement
  4. 執行sql語句,並返回結果
  5. 處理結果
  6. 關閉Connection,釋放連線

示例:

import java.sql.Connection;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class JdbcTest01 {
	public static void main(String[]args) throws Exception {
        //註冊驅動,以反射方式載入驅動
		Class.forName("com.mysql.cj.jdbc.Driver");
        //獲取連線Connection
		Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/study1?useSSL=false&serverTimezone=UTC", "root", "root");
        ///得到執行sequel語句的物件Statement
	    Statement stmt=conn.createStatement();
        //執行sql語句,並返回結果
	    ResultSet rs=stmt.executeQuery("select * from employee");
        ////處理結果
	    while(rs.next()) {
	    	System.out.println(rs.getObject("employeenumber"));
	    	System.out.println(rs.getObject("employeename"));
	    	System.out.println(rs.getObject("departmentnumber"));
	    	System.out.println(rs.getObject("salary"));
	    	System.out.println(rs.getObject("hiredate"));
	    	System.out.println("-================");
	    }
        //關閉Connection
	    rs.close();
	    stmt.close();
	    conn.close();
	}
}

上述程式碼是使用mysql8.0版本驅動的寫法,

02不同JDBC驅動版本的使用差異

5.1版本的驅動

在第一步註冊驅動時,需要用以下的方式

Class.forName("com.mysql.jdbc.Driver");//引數是class檔案的位置

第二步獲取連線時,url應該是"jdbc:mysql://localhost:3306/study1"

Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/study1", "root", "root");
三個引數,1是mysql的固定寫法"jdbc:mysql://ip地址:埠號/資料庫名",2是"資料庫使用者名稱",3是"資料庫密碼"
第一個引數中localhost是本機地址,如果資料庫不在本機,就需要寫成別的地址

5.1和8.0版本驅動的區別

首先 8.0版本驅動的位置變化了不再是com.mysql.jdbc.Driver,而是com.java.cj.jdbc.Driver

另外 注意使用mysql8.0驅動時,由於資料庫和系統時區差異在jdbc連線的url後面加上serverTimezone=GMT,此外mysql8.0是不需要建立ssl連線的,需要顯示關閉所以url後面要加上useSSL=false,而5.1版本是不需要注意這些的

 

參考:小猴子視訊