當前位置:編程學習大全網 - 編程語言 - 在plsql中能執行遠程SQL的語句是可以的 但是用jdbc連接我本地數據庫之後 執行壹樣的sql就報ORA-02019錯誤

在plsql中能執行遠程SQL的語句是可以的 但是用jdbc連接我本地數據庫之後 執行壹樣的sql就報ORA-02019錯誤

1、創建 Statement 對象

建立了到特定數據庫的連接之後,就可用該連接發送 SQL 語句。Statement 對象用 Connection 的方法 createStatement 創建,如下列代碼段中所示:

Connection con = DriverManager.getConnection(url, "sunny", "");

Statement stmt = con.createStatement();

為了執行 Statement 對象,被發送到數據庫的 SQL 語句將被作為參數提供給 Statement 的方法:

ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table2");

2、使用 Statement 對象執行語句

Statement 接口提供了三種執行 SQL 語句的方法:executeQuery、executeUpdate 和 execute。使用哪壹個方法由 SQL 語句所產生的內容決定。

方法 executeQuery 用於產生單個結果集的語句,例如 SELECT 語句。

方法 executeUpdate 用於執行 INSERT、UPDATE 或 DELETE 語句以及 SQL DDL(數據定義語言)語句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 語句的效果是修改表中零行或多行中的壹列或多列。executeUpdate 的返回值是壹個整數,指示受影響的行數(即更新計數)。對於 CREATE TABLE 或 DROP TABLE 等不操作行的語句,executeUpdate 的返回值總為零。

方法 execute 用於執行返回多個結果集、多個更新計數或二者組合的語句。因為多數程序員不會需要該高級功能,所以本概述後面將在單獨壹節中對其進行介紹。

執行語句的所有方法都將關閉所調用的 Statement 對象的當前打開結果集(如果存在)。這意味著在重新執行 Statement 對象之前,需要完成對當前 ResultSet 對象的處理。

應註意,繼承了 Statement 接口中所有方法的 PreparedStatement 接口都有自己的 executeQuery、executeUpdate 和 execute 方法。Statement 對象本身不包含 SQL 語句,因而必須給 Statement.execute 方法提供 SQL 語句作為參數。PreparedStatement 對象並不將 SQL 語句作為參數提供給這些方法,因為它們已經包含預編譯 SQL 語句。CallableStatement 對象繼承這些方法的 PreparedStatement 形式。對於這些方法的 PreparedStatement 或 CallableStatement 版本,使用查詢參數將拋出 SQLException。

3、語句完成

當連接處於自動提交模式時,其中所執行的語句在完成時將自動提交或還原。語句在已執行且所有結果返回時,即認為已完成。對於返回壹個結果集的 executeQuery 方法,在檢索完 ResultSet 對象的所有行時該語句完成。對於方法 executeUpdate,當它執行時語句即完成。但在少數調用方法 execute 的情況中,在檢索所有結果集或它生成的更新計數之後語句才完成。

概述

Statement 對象用於將 SQL 語句發送到數據庫中。實際上有三種 Statement 對象,它們都作為在給定連接上執行 SQL 語句的包容器:Statement、PreparedStatement(它從 Statement 繼承而來)和 CallableStatement(它從 PreparedStatement 繼承而來)。它們都專用於發送特定類型的 SQL 語句: Statement 對象用於執行不帶參數的簡單 SQL 語句;PreparedStatement 對象用於執行帶或不帶 IN 參數的預編譯 SQL 語句;CallableStatement 對象用於執行對數據庫已存儲過程的調用。

Statement 接口提供了執行語句和獲取結果的基本方法。PreparedStatement 接口添加了處理 IN 參數的方法;而 CallableStatement 添加了處理 OUT 參數的方法。

有些 DBMS 將已存儲過程中的每條語句視為獨立的語句;而另外壹些則將整個過程視為壹個復合語句。在啟用自動提交時,這種差別就變得非常重要,因為它影響什麽時候調用 commit 方法。在前壹種情況中,每條語句單獨提交;在後壹種情況中,所有語句同時提交。

4、關閉 Statement 對象

Statement 對象將由 Java 垃圾收集程序自動關閉。而作為壹種好的編程風格,應在不需要 Statement 對象時顯式地關閉它們。這將立即釋放 DBMS 資源,有助於避免潛在的內存問題。

  • 上一篇:如何讓孩子度過這個暑假?
  • 下一篇:數控加工技術的背景與意義
  • copyright 2024編程學習大全網