Oracle 原理: JAVA連接Oracle數據庫 (JDBC)

首先第一步要新建JAVA工程並且到導入Oracle驅動到JAVA外部依賴包:

驅動也可以在網絡上找。只要下載Oracle,Oracle驅動就存在,驅動就是 jdbc目錄下的ojdbc6.jar文件。,我的在

D:\oracle\product\11.2.0\dbhome_1\jdbc\lib\ojdbc6.jar

然後複製到JAVA工程裏, 然後選中 jar包 Build Path ->Add to build path就可以了。

第一步先連接數據庫

第二步執行SQL語句

第三部關閉數據庫

其中連接和關閉數據庫可以參考:

package com.voapd;
import java.sql.*;
import java.util.ResourceBundle;

/**
 * jdbc工具類,負責:
 * 1. 加載/註冊數據庫驅動程序
 * 2. 獲取數據庫連接
 * 3. 釋放數據庫資源(Connection, Statement, ResultSet)
 */
public class TestJDBC {

    private static final String DRIVER = "oracle.jdbc.driver.OracleDriver";
    //URL = jdbc:oracle:thin:@    +   ip地址:端口   : orcl
    private static final String URL = "jdbc:oracle:thin:@192.168.0.101:1521:orcl";
    private static final String USERNAME = "voapd";
    private static final String PASSWORD = "voapd";

    static{
        try {
            //1. 註冊數據庫驅動程序
            Class.forName(DRIVER);
        } catch (ClassNotFoundException e) {
            System.err.println("註冊數據庫驅動程序失敗。" + e.getMessage());
        }
    }
    /**
     * 2. 獲取數據庫連接
     *
     * @return
     */
    public static Connection getConnection() {
        try {
            Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
            return  conn;
        } catch (SQLException e) {
            System.err.println("a獲得數據連接失敗。" + e.getMessage());
        }
        return null;
    }

    /**
     * @param conn
     * @param stmt
     * @param rs
     */
    public static void close(Connection conn, Statement stmt, ResultSet rs) {
        try {
            //關閉數據庫的資源的順序最好與使用的順序相反
            if(rs != null){
                rs.close();
            }
            if(stmt != null){
                stmt.close();
            }
            if(conn != null){
                conn.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
   

    /**
     * 對數據庫連接進行測試
     * @param args
     */
    public static void main(String[] args) {
        System.out.println(getConnection());
    }
}

執行SQL語言可以參考

package com.voapd;
import java.sql.*;

public class TestSQL {
  private static Statement stmt=null;
  private static ResultSet rs=null;
  private static PreparedStatement ps=null;
  public static int DML(String state){
	  Connection conn= TestJDBC.getConnection();
	  int ret=-1;
	  try {
		ps=conn.prepareStatement(state);
		ret=ps.executeUpdate();
		
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}finally{
		TestJDBC.close(conn, stmt, rs);
	}
	  return ret;
  }
  public static ResultSet DQL(String state){
	  Connection conn= TestJDBC.getConnection();
	  ResultSet ret=null;
	  try {
		ps=conn.prepareStatement(state);
		stmt=conn.createStatement();
		rs=stmt.executeQuery(state);
		ret=rs;
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}finally{
		TestJDBC.close(conn, stmt, rs);
	}
	  return ret;
  }
  public static void main(String[] args) {
	  System.out.println(DML("update salary_tbl set salary=123 where employer_nm ='僱傭者1' "));
	  System.out.println(DQL("select * from salary_tbl where rownum <5 "));
  }
  
}

注意,不需要再字符串里加分號。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章