JDBC入門詳解--初學者必看-六脈神劍

JDBC入門

其實在學完數據庫之後,我們就會進入到JDBC的學習和使用。本篇會進行鍼對初學者的一些基本的學習內容進行概述。進階內容可以私聊博主進行更新。

什麼是JDBC

JDBC(Java DataBase Connectivity)Java數據庫連接。

學習數據庫的時候,我們會通過cmd或者Navicat進行連接並訪問操作數據庫。那麼在實際開發中卻大多數採用Java代碼進行實現訪問數據庫。

爲什麼會有JDBC

在SUN公司會提供一種數據庫的訪問規則、規範, 由於數據庫種類較多,並且java語言使用比較廣泛,sun公司就提供了一種規範,讓其他的數據庫提供商去實現底層的訪問規則。 我們的java程序只要使用sun公司提供的jdbc驅動即可。

如何使用JDBC

  1. 數據的準備-------寫一個User員工數據庫表
    在這裏插入圖片描述

  2. 創建一個Java工程

  3. 寫一個測試類

  4. 開始進行實現JDBC程序

JDBC之六脈神劍

以下實現遍歷去查詢數據庫表中的所有的記錄。
在這裏插入圖片描述

//準備工作
Connection conn = null;
Statement stat = null;
ResultSet rs = null;

少商劍----實現數據庫的驅動

Class.forName("com.mysql.jdbc.Driver");

商陽劍----獲取數據庫的連接

conn = DriverManager.getConnection(
				"jdbc:mysql://localhost:3306/dd_db?characterEncoding=utf-8", 
				"root", "root");

中衝劍----獲取傳輸器

stat = conn.createStatement();

關衝劍----利用傳輸器發送SQL到服務器中去執行,然後接收執行結果

String sql = "select * from user";
rs = stat.executeQuery( sql );

少澤劍----處理結果(暫時放到控制檯打印查看結果)

while( rs.next() ) {
				int id = rs.getInt("id");
				//int id = rs.getInt( 1 );
				String name = rs.getString("username");
				//String name = rs.getString( 2 );
				String password= rs.getString("password");
				//String password = rs.getString( 3 );
				System.out.println( id+":"+name+":"+password );
			}

少衝劍---- 釋放資源

if( rs != null ) {
				try {
					rs.close();
				} catch (SQLException e) {
					e.printStackTrace();
				} finally {
					rs = null;
				}
			}
			if( stat != null ) {
				try {
					stat.close();
				} catch (SQLException e) {
					e.printStackTrace();
				} finally {
					stat = null;
				}
			}
			if( conn != null ) {
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				} finally {
					conn = null;
				}
			}
		}

整個代碼需要在try-catch-finally中去處理。

完整代碼如下:

public class JdbcTest {
	public static void main(String[] args) {
		Connection conn = null;
		Statement stat = null;
		ResultSet rs = null;
		try {
			//1.註冊數據庫驅動
			Class.forName("com.mysql.jdbc.Driver");
			//2.獲取數據庫連接
			conn = DriverManager.getConnection(
				"jdbc:mysql://localhost:3306/dd_db?characterEncoding=utf-8", 
				"root", "root");
			//3.獲取傳輸器
			stat = conn.createStatement();
			//4.利用傳輸器發送SQL到服務器執行,接收執行結果
			String sql = "select * from account";
			rs = stat.executeQuery( sql );
			//5.處理結果(將查詢的結果輸出到控制檯)
			while( rs.next() ) {
				int id = rs.getInt("id");
				//int id = rs.getInt( 1 );
				String name = rs.getString("username");
				//String name = rs.getString( 2 );
				String password= rs.getString("password");
				//String password = rs.getString( 3 );
				System.out.println( id+":"+name+":"+password );
			}
			System.out.println("OK...");
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			//6.釋放資源
			if( rs != null ) {
				try {
					rs.close();
				} catch (SQLException e) {
					e.printStackTrace();
				} finally {
					rs = null;
				}
			}
			if( stat != null ) {
				try {
					stat.close();
				} catch (SQLException e) {
					e.printStackTrace();
				} finally {
					stat = null;
				}
			}
			if( conn != null ) {
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				} finally {
					conn = null;
				}
			}
		}
	}
}

下一篇會講到如何寫工具類的使用。感謝閱讀,關注一波拉。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章