JDBC訪問數據庫的具體步驟(MySql + Oracle + SQLServer)

* 感謝DT課堂顏羣老師的視頻講解(講的十分仔細,文末有視頻連接)

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

/*
    一、JDBC訪問數據庫的具體步驟:
    a、導入驅動,加載具體的驅動類
    b、與數據庫創建鏈接
    c、發送Sql,執行
    d、處理結果集 
    
    二、API(接口、方法、類) 主要功能:
    a、與數據庫創建鏈接
    b、發送Sql語句1
    c、返回處理結果  
    
    三、API的幾個操做:
    a、DriverManager: 管理JDBC驅動
    b、Connection   : 鏈接 
    c、Statement    : 運行 Sql 語句(增刪改查)
    d、CallableStatement : 調用數據庫中的存儲過程 / 存儲函數
    e、Result       : 返回結果集
 */
public class JDBPMySqlDemo {
	/*  這些值通常都是不輕易改變的,因此設置爲常量
	   
	        不一樣的數據庫對應的鏈接字符串不一樣,(形式不一樣,內容相似-------哪一種類型的數據庫、IP地址、端口號、數據庫名)
	    Oracle : jdbc:oracle:thin:@localhost:1521:數據庫實例名 (你建立的數據庫的名字)
	    MySql  : jdbc:mysql://localhost:3306/數據庫實例名
	    SQLServer : jdbc:microsoft:sqlserver:localhost:1433;databasename = 數據庫實例名
	 
	 
	  
     */
	private static final String URL = "jdbc:mysql://localhost:3306/testdate";
	private static final String USER = "root";
	private static final String PWD = "root";

	public static void update() { // 靜態方法要求其內部用到的變量也應該是靜態的(因此上述變量也應該設置爲靜態變量)
		// 由於要進行兩次異常處理,因此須要將變量設置成相對於 try..catch..語句的外部變量
		Statement stam = null;         // 會拋出SQLException異常
		Connection connection = null;  // 會拋出ClassNotFoundException異常
		try {
			/* 
			       驅動在每一個數據庫各自對應的 jar包中,因此須要先把各個數據庫對應的包進行導入
			       
			       驅 動jar:(能夠在這個連接中進行查找:https://mvnrepository.com/)
			   		Oracle:ojdbc-x.jar
			   		MySql:mysql-connector-java-x.jar
			   		SqlServer:sqljdbc-x.jar   
			   		
			       導入驅動(不一樣的數據庫對應的驅動不一樣)
			   		Oracle : oracle.jdbc.OracleDriver
			   		MySql  : com.mysql.jdbc.Driver
			   		SqlServer : com.mircrosoft.sqlserver.jdbc.SQLServerDriver
			*/
			
		    // 導入驅動(加載具體的驅動類)
			Class.forName("com.mysql.jdbc.Driver");
			// 鏈接(經過DriverManager.getConnection(鏈接字符串,用戶名,密碼))方法進行鏈接
			connection = DriverManager.getConnection(URL, USER, PWD);
			// 運行SQL語句(想要運行SQL語句要先建立一個Statement對象,用這個實例對象進行操做)
			stam = connection.createStatement();
			
			// 將sql語句做爲字符串進行執行
//			String sql = "delete from student where stuno = 2";
			String sql = "insert into student values(2,'zs',12,'s3')";
            // 經過stam的方法進行執行SQL語句進行更新數據庫(返回值是影響的行數 (int) )
			int count = stam.executeUpdate(sql);
			if (count > 0) {
				System.out.println("操做成功!");
			}
		} catch (ClassNotFoundException e) {   // 出現異常時最好一個一個處理(更加安全)
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {     // 不管操做成功與否,咱們都要進行關閉操做(放在Finally一定對執行)
			try {
				// 若是尚未執行到給 stam 變量賦值就已經異常處理了,那麼stam仍是 null,就會null.close(),從而出現空指針的問題
				if(stam != null) stam.close();   // 避免出現空指針
				if(connection != null)connection.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}
	
	public static void main(String[] args) {
		// 將update() 設置爲靜態方法,便於調用
		update();
	}

}

若是寫的不太清晰,或者有問題,能夠留言,本人會認真回答。

顏大佬的視頻連接:https://www.bilibili.com/video/av29086718?p=13
相關文章
相關標籤/搜索