欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java連接Oracle數(shù)據(jù)庫(kù)實(shí)例解析

 更新時(shí)間:2016年06月22日 10:52:58   作者:唐楓  
數(shù)據(jù)庫(kù)的操作是當(dāng)前系統(tǒng)開(kāi)發(fā)必不可少的開(kāi)發(fā)部分之一。接下來(lái)通過(guò)本文給大家介紹Java連接Oracle數(shù)據(jù)庫(kù)實(shí)例解析,非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧

數(shù)據(jù)庫(kù)的操作是當(dāng)前系統(tǒng)開(kāi)發(fā)必不可少的開(kāi)發(fā)部分之一,尤其是在現(xiàn)在的大數(shù)據(jù)時(shí)代,數(shù)據(jù)庫(kù)尤為重要。但是你真的懂得Java與數(shù)據(jù)庫(kù)是怎么連接的么?

先給大家一個(gè)數(shù)據(jù)庫(kù)連接的簡(jiǎn)單實(shí)例:

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è)定數(shù)據(jù)庫(kù)驅(qū)動(dòng),數(shù)據(jù)庫(kù)連接地址、端口、名稱(chēng),用戶(hù)名,密碼 
String driverName="oracle.jdbc.driver.OracleDriver"; 
String url="jdbc:oracle:thin:@localhost:1521:BJPOWERNODE"; //test為數(shù)據(jù)庫(kù)名稱(chēng),1521為連接數(shù)據(jù)庫(kù)的默認(rèn)端口 
String user="system"; //aa為用戶(hù)名 
String password="bjpowernode"; //123為密碼 
PreparedStatement pstmt = null; 
ResultSet rs = null; 
//數(shù)據(jù)庫(kù)連接對(duì)象 
Connection conn = null; 
try { 
//反射Oracle數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序類(lèi) 
Class.forName(driverName); 
//獲取數(shù)據(jù)庫(kù)連接 
conn = DriverManager.getConnection(url, user, password); 
//輸出數(shù)據(jù)庫(kù)連接 
System.out.println(conn); 
//定制sql命令 
String sql = "select * from t_user where user_id = ?"; 
//創(chuàng)建該連接下的PreparedStatement對(duì)象 
pstmt = conn.prepareStatement(sql); 
//傳遞第一個(gè)參數(shù)值 root,代替第一個(gè)問(wèn)號(hào) 
pstmt.setString(1, "root"); 
//執(zhí)行查詢(xún)語(yǔ)句,將數(shù)據(jù)保存到ResultSet對(duì)象中 
rs = pstmt.executeQuery(); 
//將指針移到下一行,判斷rs中是否有數(shù)據(jù) 
if(rs.next()){ 
//輸出查詢(xún)結(jié)果 
System.out.println("查詢(xún)到名為【" + rs.getString("user_id") + "】的信息,其密碼為:" + rs.getString("password")); 
}else{ 
//輸出查詢(xún)結(jié)果 
System.out.println("未查詢(xún)到用戶(hù)名為【" + 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",就會(huì)運(yùn)行該程序段,在Console中,可以看到運(yùn)行結(jié)果,如果給出一串類(lèi)似于“oracle.jdbc.driver.T4CConnection@7c242f04”這樣的字符串,就說(shuō)明你連接成功了。運(yùn)行結(jié)果如圖:

下面我們來(lái)簡(jiǎn)單解剖一下這段程序。

這段程序是Java連接Oracle數(shù)據(jù)庫(kù)的實(shí)例,采用jdbc來(lái)完成連接數(shù)據(jù)庫(kù)的操作,所以需要引入ojdbc14.jar。在操作前,首先得先得到數(shù)據(jù)庫(kù)驅(qū)動(dòng)類(lèi)的對(duì)象,通過(guò)驅(qū)動(dòng)對(duì)象拿到數(shù)據(jù)庫(kù)連接對(duì)象。

其中Class.forName(driverName)就是應(yīng)用類(lèi)反射機(jī)制,加載驅(qū)動(dòng)程序的。DriverManager 類(lèi)是 JDBC 的管理層,作用于用戶(hù)和驅(qū)動(dòng)程序之間。它跟蹤可用的驅(qū)動(dòng)程序,并在數(shù)據(jù)庫(kù)和相應(yīng)驅(qū)動(dòng)程序之間建立連接。

一般只需要在類(lèi)中直接使用方法DriverManager.getConnection,即可建立與數(shù)據(jù)庫(kù)的連接
PreparedStatement 接口繼承Statement,是用來(lái)執(zhí)行數(shù)據(jù)庫(kù)操作的類(lèi)。PreparedStatement在多次調(diào)用時(shí)的效率要比Statement高很多,所以很多人都主張以PreparedStatement代替Statement。

在接下來(lái)的博文中,會(huì)詳細(xì)介紹一下這點(diǎn)《深入 理解 Statement 和 PreparedStatement》。PreparedStatement可以看做.net中的Command的類(lèi)。

ResultSet 接口在很多語(yǔ)言中都出現(xiàn)過(guò),它主要來(lái)存放查詢(xún)到的數(shù)據(jù)。每次查詢(xún)到數(shù)據(jù)后,Java語(yǔ)言中通常使用next()方法來(lái)讀取數(shù)據(jù)。

相關(guān)文章

  • java集合框架 arrayblockingqueue應(yīng)用分析

    java集合框架 arrayblockingqueue應(yīng)用分析

    ArrayBlockingQueue是一個(gè)由數(shù)組支持的有界阻塞隊(duì)列。此隊(duì)列按 FIFO(先進(jìn)先出)原則對(duì)元素進(jìn)行排序。隊(duì)列的頭部 是在隊(duì)列中存在時(shí)間最長(zhǎng)的元素
    2012-11-11
  • 一篇文章帶你入門(mén)Java修飾符

    一篇文章帶你入門(mén)Java修飾符

    Java語(yǔ)言提供了很多修飾符,主要分為以下兩類(lèi):訪問(wèn)修飾符;非訪問(wèn)修飾符。修飾符用來(lái)定義類(lèi)、方法或者變量,通常放在語(yǔ)句的最前端。我們通過(guò)下面的例子來(lái)說(shuō)明,下面就跟小編一起來(lái)看下吧
    2021-08-08
  • Java阻塞隊(duì)列BlockingQueue詳解

    Java阻塞隊(duì)列BlockingQueue詳解

    這篇文章主要介紹了Java阻塞隊(duì)列BlockingQueue,文章通過(guò)隊(duì)列的類(lèi)型展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-07-07
  • java map轉(zhuǎn)Multipart/form-data類(lèi)型body實(shí)例

    java map轉(zhuǎn)Multipart/form-data類(lèi)型body實(shí)例

    這篇文章主要介紹了java map轉(zhuǎn)Multipart/form-data類(lèi)型body實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • java數(shù)獨(dú)游戲完整版分享

    java數(shù)獨(dú)游戲完整版分享

    這篇文章主要為大家分享了java數(shù)獨(dú)游戲的完整版,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • 圖解JVM垃圾內(nèi)存回收算法

    圖解JVM垃圾內(nèi)存回收算法

    這篇文章主要介紹了圖解JVM垃圾內(nèi)存回收算法,由于年輕代堆空間的垃圾回收會(huì)很頻繁,因此其垃圾回收算法會(huì)更加重視回收效率,下面小編就和大家來(lái)一起學(xué)習(xí)一下吧
    2019-06-06
  • SpringBoot @JsonDeserialize自定義Json序列化方式

    SpringBoot @JsonDeserialize自定義Json序列化方式

    這篇文章主要介紹了SpringBoot @JsonDeserialize自定義Json序列化方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 持久層ORM框架Hibernate框架的使用及搭建方式

    持久層ORM框架Hibernate框架的使用及搭建方式

    Hibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù),本文重點(diǎn)給大家介紹持久層ORM框架Hibernate框架的使用及搭建方式,感興趣的朋友一起看看吧
    2021-11-11
  • springboot啟動(dòng)時(shí)如何指定spring.profiles.active

    springboot啟動(dòng)時(shí)如何指定spring.profiles.active

    這篇文章主要介紹了springboot啟動(dòng)時(shí)如何指定spring.profiles.active問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Java動(dòng)態(tài)規(guī)劃之硬幣找零問(wèn)題實(shí)現(xiàn)示例

    Java動(dòng)態(tài)規(guī)劃之硬幣找零問(wèn)題實(shí)現(xiàn)示例

    本文主要介紹了Java動(dòng)態(tài)規(guī)劃之硬幣找零問(wèn)題實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08

最新評(píng)論