2017-10-30
接上一篇文章(利用 Java io 包進行文件讀寫操作),在這里我將總結使用 JDBC 連接 MySQL 數據庫,並進行數據查詢操作的方法。
場景
使用 JDBC 連接數據庫查詢數據,返回到前端,前端再使用 JS 插件對數據進一步操作。
考察知識點
- JDBC 連接
- 給出插件的 API,考察當場學習新知識的速度
數據
我使用數據庫是 cjl_demo,查詢的表是 stu,該表下有數據:

首先給出代碼示例
我也將代碼托管在碼雲平台,可以前往參考:https://gitee.com/jinglun404/jdbc-demo
1 import java.sql.*; 2 3 /** 4 * 使用JDBC查詢mysql數據庫示例 5 */ 6 public class Main { 7 8 public static void main(String[] args) { 9 10 try { 11 // 1.反射獲取mysql驅動實例 12 Class.forName("com.mysql.jdbc.Driver"); 13 } catch (ClassNotFoundException e) { 14 System.out.println("找不到驅動程序類,加載驅動失敗!"); 15 e.printStackTrace(); 16 } 17 18 String url = "jdbc:mysql://localhost:3306/cjl_demo"; 19 String username = "username"; 20 String password = "password"; 21 try { 22 // 2.驅動實例->Connection 23 Connection conn = DriverManager.getConnection(url, username, password); 24 25 // 3.Connection->Statement 26 Statement stmt = conn.createStatement(); 27 28 // 4.Statement->ResultSet 29 String sql = "select * from stu"; 30 ResultSet rs = stmt.executeQuery(sql); 31 32 // 5.通過ResultSet獲取數據 33 while (rs.next()) { 34 String id = rs.getString("id"); 35 String name = rs.getString("name"); 36 String score = rs.getString("score"); 37 String sex = rs.getString("sex"); 38 String theClass = rs.getString("class"); 39 System.out.println(id + "--" + name + "--" + score + "--" + sex + "--" + theClass); 40 /** 41 * 1--a--66--男--1 42 * 2--b--82--女--2 43 * 3--c--77--男--1 44 * 4--d--90--女--2 45 * 5--e--90--女--1 46 */ 47 } 48 49 // 6.依次關閉ResultSet,Statement,Connection 50 if (rs != null) { 51 try { 52 rs.close(); 53 } catch (SQLException e) { 54 System.out.println("ResultSet關閉時出現錯誤!"); 55 e.printStackTrace(); 56 } 57 } 58 if (stmt != null) { 59 try { 60 stmt.close(); 61 } catch (SQLException e) { 62 System.out.println("Statement關閉時出現錯誤!"); 63 e.printStackTrace(); 64 } 65 } 66 if (conn != null) { 67 try { 68 conn.close(); 69 } catch (SQLException e) { 70 System.out.println("Connection關閉時出現錯誤!"); 71 e.printStackTrace(); 72 } 73 } 74 75 } catch (SQLException e) { 76 System.out.println("數據庫連接失敗!"); 77 e.printStackTrace(); 78 } 79 } 80 }
說明
先來看一張圖,這張圖總結了使用 JDBC 連接數據庫操作的過程

不難理解,JDBC 連接數據庫並進一步操作,步驟可大致總結為:
- 導入相應數據庫的驅動包
- 通過反射加載相應數據庫驅動實例
- 有 DriverManager 獲取 Connection 實例
- 通過 Connection 實例獲取 Statement 實例
- 通過 Statement 實例操作數據庫,並返回 ResultSet
- 通過 ResultSet 獲取查詢的數據
- 依次關閉 ResultSet、Statement、Connection
注意
我在上面的總結中,總結的是使用 JDBC 查詢的操作,當然,除此之外,還可以利用 JDBC 進行插入數據、更新數據操作。
而這不同操作的區別在於使用不同的 Statement 方法:
- ResultSet executeQuery(String sqlString):執行查詢數據庫的 SQL 語句,返回一個結果集(ResultSet)對象。
- int executeUpdate(String sqlString):用於執行 INSERT、UPDATE 或 DELETE 語句以及 SQL DDL 語句,如:CREATE TABLE 和 DROP TABLE 等,返回操作影響的行數。
- boolean execute(sqlString):用於執行返回多個結果集、多個更新計數或二者組合的語句,返回一個 boolean 值。
參考網站
http://www.cnblogs.com/hongten/archive/2011/03/29/1998311.html
http://www.cnblogs.com/lee/archive/2007/08/25/869656.html
