02jdbc web專案使用jdbc示例及不同版本呼叫jdbc的差異
阿新 • • 發佈:2018-12-15
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步:
- 註冊驅動
- 獲取連線Connection
- 得到執行sql語句的物件Statement
- 執行sql語句,並返回結果
- 處理結果
- 關閉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版本是不需要注意這些的
參考:小猴子視訊