// 這學期本來不打算深入學習Java的,課上的小項目也就隨便寫了一個簡單計算器和掃雷游戲就糊弄過去。可是我們的Eliza老師偏偏什么都講了,考慮到期末也會涉及到JDBC的內容,前些天試着學習一番。
// 由於數據庫的連接並不順利,於是記錄下這些踩過的坑。。。
我參考了菜鳥教程上關於MySQL學習指導,如果使用的是Eclipse,那么需要先導入驅動包。
下載JDBC驅動包
一定注意本地安裝的MySQL版本!!!(菜鳥教程提供的5.1.39版本不適用於最新的MySQL8.0)
在MySQL官網可以找到最新的驅動包,選擇壓縮包下載,也可以直接點擊mysql-connector-java-8.0.16.zip下載。
導入jar包
在Eclipse中導入jar包似乎有三種方式,可以參考https://www.cnblogs.com/ruiati/p/3591203.html這篇博客。
在項目列表上右鍵點擊,選擇Properties,在彈出的對話框里找到Libraries,選擇Add External JARs,加入下載並解壓過的jar驅動包。
點擊Apply and Close確定導入。
測試JDBC連接
根據本機數據庫配置,在測試的類里有這些基本數據:
// JDBC 驅動名及數據庫URL static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost:3306/university"; // 數據庫的用戶名與密碼,需要根據自己的設置 static final String USER = "root"; static final String PASS = "xxxx";
Java連接MySQL分為五個步驟:
-
// 注冊JDBC驅動
Class.forName(JDBC_DRIVER); -
// 打開鏈接
Connection conn = DriverManager.getConnection(DB_URL, USER, PASS); -
// 執行查詢
Statement stmt = conn.createStatement();
String sql = "SELECT sno, sname FROM student";
ResultSet rs = stmt.executeQuery(sql); -
// 展開結果集數據庫
while(rs.next()){
// 通過字段檢索
String no = rs.getString("sno");
String name = rs.getString("sname");
// 輸出數據
System.out.println("no: " + no + ", name: " + name); -
// 完成后關閉
rs.close();
stmt.close();
conn.close();
程序正常運行可以獲取到數據庫的內容,但是很不幸我的程序拋出如下異常:
大概是時區設置問題,一頓百度之后,解決方案如下:
於是得到了正確的查詢結果。
(完)