1. 程式人生 > 程式設計 >Java如果通過jdbc操作連線oracle資料庫

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();
 }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。