Java如果通過jdbc操作連接oracle數(shù)據(jù)庫
1、jdbc
1) 含義:JDBC是java語言連接數(shù)據(jù)庫,Java Date Base Connectivity
2) jdbc的本質(zhì):在編程時(shí)java程序會去連接不同的數(shù)據(jù)庫,而每個(gè)數(shù)據(jù)庫的底層的實(shí)現(xiàn)原理是不同的,所以我們所編寫的程序應(yīng)該是面向一套規(guī)范去編寫的,這套java語言連接數(shù)據(jù)庫的規(guī)范就是jdbc
A、sun公司:
jdbc接口是一套由Sun公司制定的一套Class文件規(guī)范,用于規(guī)范程序員;
B、數(shù)據(jù)庫廠商:
編寫jdbc接口的實(shí)現(xiàn)類,并將這些實(shí)現(xiàn)類打成jar包,并發(fā)布;這些jar包被稱為連接數(shù)據(jù)庫的驅(qū)動。
C、編程的程序員:
從各類型的數(shù)據(jù)庫官網(wǎng)上面下載jar包,并配置到環(huán)境變量Classpath中。若果沒有把class文件配置到環(huán)境變量classPath,那么代表你只有接口和調(diào)用數(shù)據(jù),而沒有接口的實(shí)現(xiàn)類,沒有實(shí)現(xiàn)類程序是無法運(yùn)行的。
3) oracle10gi下JDBC驅(qū)動包介紹:
Oracle 數(shù)據(jù)庫 10g 第 2 版 (10.2.0.1.0) JDBC 驅(qū)動程序針對所有平臺的 JDBC 瘦客戶端
classes12.jar 用于 JDK 1.2 和 JDK 1.3
classes12_g.jar 與 classes12.jar 一樣,除了類通過“javac -g”編譯并包含一些跟蹤信息
classes12dms.jar 與 classes12.jar 一樣,除了另外包含支持 Oracle 動態(tài)監(jiān)視服務(wù)的代碼。
classes12dms_g.jar 與 classes12dms.jar 一樣,除了類通過“javac -g”編譯并包含一些跟蹤信息。ojdbc14.jar 用于 JDK 1.4 和 1.5 的類
ojdbc14_g.jar 與 ojdbc14.jar 一樣,除了類通過“javac -g”編譯并包含一些跟蹤信息。
ojdbc14dms.jar 與 ojdbc14.jar 一樣,除了另外包含支持 Oracle 動態(tài)監(jiān)視服務(wù)的代碼。
ojdbc14dms_g.jar 與 ojdbc14dms.jar 一樣,除了類通過“javac -g”編譯并包含一些跟蹤信息。
orai18n.jar 用于 JDK 1.2、1.3、1.4 和 1.5 的 NLS 類。該 jar 文件代替舊的 nls_charset jar/zip 文件。
ons.jar 供純 Java 客戶端 Oracle 通知服務(wù) (ONS) 后臺程序使用。
demo.tar 或 demo.zip 包含 JDBC 示例程序
|示例:java連接數(shù)據(jù)庫進(jìn)行查詢操作|
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JDBCTest01 {
public static void main(String[] args) {
Connection con=null;
PreparedStatement prs=null;
ResultSet rs=null;
try {
//步驟1、加載oracle驅(qū)動程序
Class.forName("oracle.jdbc.OracleDriver");
String url="jdbc:oracle:thin:@10.125.4.55:1521:orcl";
String user="zhangjunbo";
String password="zjb123";
String sql="select * from student where xuehao='2'";
try {
//步驟2、獲取連接
con=DriverManager.getConnection(url, user, password);
System.out.println(con);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
//步驟3、實(shí)例化預(yù)編譯語句
prs=con.prepareStatement(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//步驟4、執(zhí)行查詢
try {
rs=prs.executeQuery(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
//步驟5、處理查詢結(jié)果集
while(rs.next()){
System.out.println("姓名:"+rs.getString("xingming")+"\n"+"生日:"+rs.getString("birthday"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//逐一將上面的幾個(gè)對象關(guān)閉,不關(guān)閉的話會影響性能、并且占用資源
//注意關(guān)閉的順序,最后使用的最先關(guān)閉
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
prs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
|示例:通過配置文件連接數(shù)據(jù)庫進(jìn)行增刪改查|
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Properties;
public class JDBCTest02 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//創(chuàng)建輸入流
FileReader fReader=null;
try {
fReader=new FileReader("src/JDBC/db.properties");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//創(chuàng)建map集合對象
Properties properties=new Properties();
//加載(將輸入流中的資源加載到屬性類對象中)
try {
properties.load(fReader);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String driver=properties.getProperty("driver");
String url=properties.getProperty("url");
String username=properties.getProperty("username");
String password=properties.getProperty("password");
Class.forName(driver);
Connection connection=DriverManager.getConnection(url, username, password);
//對student表進(jìn)行修改操作
String sql="update student set xingming=? where xuehao=?";
PreparedStatement pre=connection.prepareStatement(sql);
pre.setString(1,"紛紛");
pre.setString(2, "3");
String sqlInsert="insert into student values(20,'寂靜','男','','12000',3,20,21)";
PreparedStatement pre2=connection.prepareStatement(sqlInsert);
int insertInt=pre2.executeUpdate();
int updateInt=pre.executeUpdate();
System.out.println(updateInt+insertInt);
pre.close();
connection.close();
}
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java開發(fā)Oracle數(shù)據(jù)庫連接JDBC Thin Driver 的三種方法
- Java使用Jdbc連接Oracle執(zhí)行簡單查詢操作示例
- Java使用JDBC或MyBatis框架向Oracle中插入XMLType數(shù)據(jù)
- Java使用JDBC連接Oracle_MSSQL實(shí)例代碼
- Java與Oracle實(shí)現(xiàn)事務(wù)(JDBC事務(wù))實(shí)例詳解
- java使用jdbc鏈接Oracle示例類分享
- java基于JDBC連接Oracle 11g Release2實(shí)例分析
- Java使用JDBC實(shí)現(xiàn)Oracle用戶認(rèn)證的方法詳解
- JAVA使用JDBC連接oracle數(shù)據(jù)庫的詳細(xì)過程
相關(guān)文章
eclipse配置tomcat10的詳細(xì)步驟總結(jié)
今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識,文章圍繞著eclipse配置tomcat10的詳細(xì)步驟展開,文中有非常詳細(xì)的介紹及圖文示例,需要的朋友可以參考下2021-06-06
java中循環(huán)遍歷刪除List和Set集合中元素的方法(推薦)
下面小編就為大家?guī)硪黄猨ava中循環(huán)遍歷刪除List和Set集合中元素的方法(推薦)。小編覺得挺不錯(cuò)的,在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-12-12
SpringBoot+RabbitMQ實(shí)現(xiàn)消息可靠傳輸詳解
消息的可靠傳輸是面試必問的問題之一,保證消息的可靠傳輸主要在生產(chǎn)端開啟?comfirm?模式,RabbitMQ?開啟持久化,消費(fèi)端關(guān)閉自動?ack?模式。本文將詳解SpringBoot整合RabbitMQ如何實(shí)現(xiàn)消息可靠傳輸,需要的可以參考一下2022-05-05
SpringBoot整合websocket實(shí)現(xiàn)即時(shí)通信聊天
這篇文章主要介紹了SpringBoot整合websocket實(shí)現(xiàn)即時(shí)通信聊天,實(shí)時(shí)通信是一個(gè)實(shí)時(shí)通信系統(tǒng),允許兩人或多人使用網(wǎng)絡(luò)實(shí)時(shí)的傳遞文字消息、文件、語音與視頻交流,需要的朋友可以參考下2022-05-05
Spring?AOP實(shí)現(xiàn)多數(shù)據(jù)源動態(tài)切換
本文主要介紹了Spring?AOP實(shí)現(xiàn)多數(shù)據(jù)源動態(tài)切換,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
Java+opencv3.2.0實(shí)現(xiàn)模板匹配
這篇文章主要為大家詳細(xì)介紹了Java+opencv3.2.0實(shí)現(xiàn)模板匹配的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02

