使用 JDBC 連接 MySQL 數據庫並進行數據查詢操作


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 連接數據庫並進一步操作,步驟可大致總結為:

  1. 導入相應數據庫的驅動包
  2. 通過反射加載相應數據庫驅動實例
  3. 有 DriverManager 獲取 Connection 實例
  4. 通過 Connection 實例獲取 Statement 實例
  5. 通過 Statement 實例操作數據庫,並返回 ResultSet
  6. 通過 ResultSet 獲取查詢的數據
  7. 依次關閉 ResultSet、Statement、Connection

注意

我在上面的總結中,總結的是使用 JDBC 查詢的操作,當然,除此之外,還可以利用 JDBC 進行插入數據、更新數據操作。

而這不同操作的區別在於使用不同的 Statement 方法:

  1. ResultSet executeQuery(String sqlString):執行查詢數據庫的 SQL 語句,返回一個結果集(ResultSet)對象。
  2. int executeUpdate(String sqlString):用於執行 INSERT、UPDATE 或 DELETE 語句以及 SQL DDL 語句,如:CREATE TABLE 和 DROP TABLE 等,返回操作影響的行數。 
  3. 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

 


免責聲明!

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



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