Java連接Oracle數(shù)據(jù)庫實例解析
數(shù)據(jù)庫的操作是當前系統(tǒng)開發(fā)必不可少的開發(fā)部分之一,尤其是在現(xiàn)在的大數(shù)據(jù)時代,數(shù)據(jù)庫尤為重要。但是你真的懂得Java與數(shù)據(jù)庫是怎么連接的么?
先給大家一個數(shù)據(jù)庫連接的簡單實例:
package com.java.dbtest;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class TestConnection implements DBTest{
public void SelectUser(){
//設定數(shù)據(jù)庫驅(qū)動,數(shù)據(jù)庫連接地址、端口、名稱,用戶名,密碼
String driverName="oracle.jdbc.driver.OracleDriver";
String url="jdbc:oracle:thin:@localhost:1521:BJPOWERNODE"; //test為數(shù)據(jù)庫名稱,1521為連接數(shù)據(jù)庫的默認端口
String user="system"; //aa為用戶名
String password="bjpowernode"; //123為密碼
PreparedStatement pstmt = null;
ResultSet rs = null;
//數(shù)據(jù)庫連接對象
Connection conn = null;
try {
//反射Oracle數(shù)據(jù)庫驅(qū)動程序類
Class.forName(driverName);
//獲取數(shù)據(jù)庫連接
conn = DriverManager.getConnection(url, user, password);
//輸出數(shù)據(jù)庫連接
System.out.println(conn);
//定制sql命令
String sql = "select * from t_user where user_id = ?";
//創(chuàng)建該連接下的PreparedStatement對象
pstmt = conn.prepareStatement(sql);
//傳遞第一個參數(shù)值 root,代替第一個問號
pstmt.setString(1, "root");
//執(zhí)行查詢語句,將數(shù)據(jù)保存到ResultSet對象中
rs = pstmt.executeQuery();
//將指針移到下一行,判斷rs中是否有數(shù)據(jù)
if(rs.next()){
//輸出查詢結(jié)果
System.out.println("查詢到名為【" + rs.getString("user_id") + "】的信息,其密碼為:" + rs.getString("password"));
}else{
//輸出查詢結(jié)果
System.out.println("未查詢到用戶名為【" + rs.getString("user_id") + "】的信息");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally{
try{
if(rs != null){
rs.close();
}
if(pstmt != null){
pstmt.close();
}
if(conn != null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args){
new TestConnection().SelectUser();
}
}
在main函數(shù)中,右鍵,選擇“Run as”=>"Java Application",就會運行該程序段,在Console中,可以看到運行結(jié)果,如果給出一串類似于“oracle.jdbc.driver.T4CConnection@7c242f04”這樣的字符串,就說明你連接成功了。運行結(jié)果如圖:

下面我們來簡單解剖一下這段程序。
這段程序是Java連接Oracle數(shù)據(jù)庫的實例,采用jdbc來完成連接數(shù)據(jù)庫的操作,所以需要引入ojdbc14.jar。在操作前,首先得先得到數(shù)據(jù)庫驅(qū)動類的對象,通過驅(qū)動對象拿到數(shù)據(jù)庫連接對象。
其中Class.forName(driverName)就是應用類反射機制,加載驅(qū)動程序的。DriverManager 類是 JDBC 的管理層,作用于用戶和驅(qū)動程序之間。它跟蹤可用的驅(qū)動程序,并在數(shù)據(jù)庫和相應驅(qū)動程序之間建立連接。
一般只需要在類中直接使用方法DriverManager.getConnection,即可建立與數(shù)據(jù)庫的連接
PreparedStatement 接口繼承Statement,是用來執(zhí)行數(shù)據(jù)庫操作的類。PreparedStatement在多次調(diào)用時的效率要比Statement高很多,所以很多人都主張以PreparedStatement代替Statement。
在接下來的博文中,會詳細介紹一下這點《深入 理解 Statement 和 PreparedStatement》。PreparedStatement可以看做.net中的Command的類。
ResultSet 接口在很多語言中都出現(xiàn)過,它主要來存放查詢到的數(shù)據(jù)。每次查詢到數(shù)據(jù)后,Java語言中通常使用next()方法來讀取數(shù)據(jù)。
相關(guān)文章
空指針HttpSession異常之SpringBoot集成WebSocket的方法
文章介紹了在Spring?Boot中集成WebSocket時遇到的HttpSession為空的問題,并探討了三種解決方法,方法一涉及域名配置,方法二通過監(jiān)聽創(chuàng)建Session,而方法三是從request中獲取session并存入數(shù)據(jù),感興趣的朋友一起看看吧2025-01-01
Java 數(shù)據(jù)結(jié)構(gòu)與算法系列精講之紅黑樹
紅黑樹的應用比較廣泛,主要是用它來存儲有序的數(shù)據(jù),它的時間復雜度是O(lgn),效率非常之高。例如,Java集合中的TreeSet和TreeMap,C++ STL中的set、map,以及Linux虛擬內(nèi)存的管理,都是通過紅黑樹去實現(xiàn)的2022-02-02
SpringBoot整合新版SpringSecurity完整過程
Spring Security是保障Spring應用程序安全的強大框架,而新版的Spring Security引入了lambda表達式來配置,使得安全配置更加簡潔、優(yōu)雅,本文將介紹如何在Spring Boot項目中整合新版Spring Security,需要的朋友可以參考下2024-02-02
使用SpringEvent解決WebUploader大文件上傳解耦問題
Spring Event是Spring框架內(nèi)建的一種發(fā)布/訂閱模式的實現(xiàn),它允許應用內(nèi)部不同組件之間通過事件進行通信,本文以WebUploader大文件上傳組件為例,在大文件處理的場景中使用SpringEvent的事件發(fā)布機制,靈活的擴展對文件的處理需求,需要的朋友可以參考下2024-07-07

