JDBC連接Oracle數據庫

JDBC:

1、java制定標準,不同的數據庫廠商實現接口即可。

在這裏插入圖片描述

2、oracle廠商實現接口
F:\app\Administrator\product\11.2.0\dbhome_1\jdbc\lib\ojdbc6.jar 
視安裝路徑而定
3、jdbc步驟
package com.shy.jdbc;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

/* JDBC操作步驟:
 * 1.加載驅動(選擇數據庫)
 * 2.獲取連接(與數據庫連接上)
 * 3.處理塊(處理執行sql語句)
 * 4.準備sql語句
 * 5.執行sql語句(僅僅是發送)
 * 6.獲取結果集,操作數據
 * 7.關閉資源
 */
public class JDBCDemo2 {
	public static void main(String[] args) {
		Properties pro = new Properties();
		try {
			pro.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("db.properties"));
		} catch (IOException e) {
			e.printStackTrace();
		}

		// 1、加載驅動
		try {
			Class.forName(pro.getProperty("driver"));
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}

		// 2、獲取連接
		Connection conn = null;
		Statement state = null;
		ResultSet result = null;
		try {
			conn = DriverManager.getConnection(pro.getProperty("url"), pro.getProperty("name"), pro.getProperty("pwd"));
			// 3.獲取處理塊
			state = conn.createStatement();
			// 4、準備sql
			String sql = "select empno,ename from emp";
			// 5、執行sql
			result = state.executeQuery(sql);
			// 6、處理
			while (result.next()) {
				System.out.println(result.getObject(1) + "--->" + result.getObject("ename"));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			if (result != null) {
				try {
					result.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if (state != null) {
				try {
					state.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if (conn != null) {
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
	}
}

處理塊:

1、靜態處理塊 Statement
Statement 是 Java 執行數據庫操作的一個重要接口,用於在已經建立數據庫連接的基礎上,向數據庫發送要執行的 SQL 語句。Statement 對象,用於執不帶參數的簡單 SQL 語句。
執行靜態 SQL 語句並返回它所生成結果的對象。
	ddl -->execute(dd語句) -- 通常不會在代碼中執行
	dml -->executeUpdate(dml語句)
	select -->executeQuery(select)
特點:處理不變的靜態的 sql 語句
	優點: 直接查看sql ,方便處理錯誤
	缺點:性能不高 拼接 sql 麻煩 可能存在 sql 注入
2、預處理塊 PreparedStatement
PreparedStatement 接口繼承了 Statement,並與之在兩方面有所不同:有人主張,在 JDBC 應用中,如果你已經是稍有水平開發者,你就應該始終以PreparedStatement 代替 Statement.也就是說,在任何時候都不要使用 Statement。由於 PreparedStatement 對象已預編譯過,所以其執行速度要快於 Statement對象。因此,多次執行的 SQL 語句經常創建爲 PreparedStatement 對象,以提高效率。
執行:
	存在? ,先填充參數再執行
	ddl -->execute()
	dml -->executeUpdate()
	select -->executeQuery()
	特點 :處理 不變的靜態的 sql 語句 |可變的 sql 語句 帶 ? 的 sql
		優點:性能高,方便編寫sql 不存在sql注入 安全
		缺點:不能直接打印sql語句 不方便處理錯誤
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章