Java如果通過jdbc操作連線oracle資料庫
1、jdbc
1) 含義:JDBC是java語言連線資料庫,Java Date Base Connectivity
2) jdbc的本質:在程式設計時java程式會去連線不同的資料庫,而每個資料庫的底層的實現原理是不同的,所以我們所編寫的程式應該是面向一套規範去編寫的,這套java語言連線資料庫的規範就是jdbc
A、sun公司:
jdbc介面是一套由Sun公司制定的一套Class檔案規範,用於規範程式設計師;
B、資料庫廠商:
編寫jdbc介面的實現類,並將這些實現類打成jar包,併發布;這些jar包被稱為連線資料庫的驅動。
C、程式設計的程式設計師:
從各型別的資料庫官網上面下載jar包,並配置到環境變數Classpath中。若果沒有把class檔案配置到環境變數classPath,那麼代表你只有介面和呼叫資料,而沒有介面的實現類,沒有實現類程式是無法執行的。
3) oracle10gi下JDBC驅動包介紹:
Oracle 資料庫 10g 第 2 版 (10.2.0.1.0) JDBC 驅動程式針對所有平臺的 JDBC 瘦客戶端
classes12.jar 用於 JDK 1.2 和 JDK 1.3
classes12_g.jar 與 classes12.jar 一樣,除了類通過“javac -g”編譯幷包含一些跟蹤資訊
classes12dms.jar 與 classes12.jar 一樣,除了另外包含支援 Oracle 動態監視服務的程式碼。
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 動態監視服務的程式碼。
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 通知服務 (ONS) 後臺程式使用。
demo.tar 或 demo.zip 包含 JDBC 示例程式
|示例:java連線資料庫進行查詢操作|
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驅動程式 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、例項化預編譯語句 prs=con.prepareStatement(sql); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } //步驟4、執行查詢 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、處理查詢結果集 while(rs.next()){ System.out.println("姓名:"+rs.getString("xingming")+"\n"+"生日:"+rs.getString("birthday")); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ //逐一將上面的幾個物件關閉,不關閉的話會影響效能、並且佔用資源 //注意關閉的順序,最後使用的最先關閉 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(); } } } }
|示例:通過配置檔案連線資料庫進行增刪改查|
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 { //建立輸入流 FileReader fReader=null; try { fReader=new FileReader("src/JDBC/db.properties"); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } //建立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表進行修改操作 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(); } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。