當前位置:首頁 » 編程語言 » jdbc執行sql文件
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

jdbc執行sql文件

發布時間: 2023-04-29 22:15:59

① JAVA jdbc 執行sql, 取值遇到問題

這個問題我也遇到過,問題原因在於游標停激輪留在結果集的第一條記錄的前面,所以是無效的。解決辦法:1.在String studyUID = rs.getString("STUDY_UID"); 的前明拿信面加一句 rs.next();或者將String studyUID = rs.getString("STUDY_UID");,改寫成如下
while(rs.next()){
String studyUID = rs.getString("敏銷STUDY_UID");
}

② java代碼中用JDBC導入sql腳本

之前也有人問過這樣的問題,這是我的建議 1. 可以看看JAVA的這個方法:java.lang.Runtime.getRuntime().exec();缺點:由於你的資料庫密碼為空,所以用這個方法 .bat也無法運行2.用數據流讀入SQL文件,然後用 String.toString().split(";"); 來分離出各個單獨的SQL語句,一個一個的執行。缺點:如果SQL文件里有注釋部分,就會麻煩點。3.用Ant寫腳本執行4.資料庫工具執行我還比較會選擇3,4,資料庫的操作,特別是對表結構的改變,還是在資料庫里執行會比較好比如刪表操作,就最好不要寫在代碼,在資料庫里,誤刪除還能rollback,程序里就麻煩了

③ 在jdbc進行資料庫調用時 採用哪些方式執行sql語句呢

創建Statement對象 使用Statement對象執行語句 語句完成 關閉Statement對象 使用方法execute基於JDBC的資料庫通用訪問方法

④ 如何在使用JDBC執行SQL腳本後獲得受影響行數

你將所有的代碼合成一行 (確保執行不會出錯) 然後用JDBC普通調用的方法執行下 看看行不行 存儲過程也是可以寫到JAVA裡面的 還有 返回值用存儲過程的方式返回 不要列印

⑤ 在JAVA中,使用JDBC訪問資料庫時可以執行SQL語句完成對資料庫造作的是

B Statement

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 資源,有助於避免潛在的內存問題。

⑥ sqlserver 怎樣直接執行sql文件

SQL Server Management Studio 連接資料庫 ,菜單 文件 打開 文件 *.sql ,工具欄點執行

⑦ jdbc中,執行sql語句的對象創建是

jdbc中,執行sql語句Connection對象創建。根據相關信息查詢顯示,Statement:jdbc中執行sql語句友舉拿的對象好搭,是由Connection對象創建。答棚

⑧ java中簡述使用JDBC完成資料庫操作的基本步驟(簡述採用jdbc訪問資料庫的步驟)

創建一個以JDBC連接資料庫的程序,包含7個步驟:

1、載入JDBC驅動程序:

在連接資料庫之前,首先要載入想要連接的資料庫的驅動到JVM(Java虛擬機),這通過java.lang.Class類的靜態方法forName(StringclassName)實現。

例如:

try{

//載入MySql的驅動類

Class.forName("com.mysql.jdbc.Driver");

}catch(e){

System.out.println("找不到驅動程序類,載入驅動失敗!");

e.();

}

成功載入後,會將Driver類的實例注冊到類中。

2、提供JDBC連接的URL

6?1連接URL定義了連接資料庫時的協議、子協議、數據源標識。

6?1書寫形式:協議:子協議:數據源標識

協議:在JDBC中總是以jdbc開始

子協議:是橋連接的驅動程序或是資料庫管理系統名稱。

數據源標識:標記找到資料庫來源的地址與連接埠。

例如:(MySql的連接URL)

jdbc:mysql:

//localhost:3306/test?useUnicode=true&=gbk;

useUnicode=true:表示使用Unicode字元集。如果設置為

gb2312或GBK,本參數必須設置為true。=gbk:字元編碼方式。

3、創建數據侍旅庫的連接

6?1要連接資料庫,需要向java.sql.請求並獲得Connection對象,該對象就代表一個資料庫的連接。

6?1使用的(Stringurl,Stringusername,Stringpassword)方法傳入指定的欲連接的資料庫的路徑、資料庫的用戶名和

密碼來獲得。

例如:

//連接MySql資料庫,用戶名和密碼都是root

Stringurl="jdbc:mysql://localhost:3306/test";

Stringusername="root";

Stringpassword="root";

try{

Connectioncon=

.(url,username,password);

}catch(se){

System.out.println("資料庫連接失敗!");

se.();

}

4、創建一個Statement

6?1要執行SQL語句,必須獲得java.sql.Statement實例棚鎮,Statement實例分為以下3

種類型:

1、執行靜態SQL語句。通常通過Statement實例實現。

2、執行動態SQL語句。通常通過實例實現。

3、執行資料庫存儲過程。通常通過實例實現。

具體的實現方式:

Statementstmt=con.();

PreparedStatementpstmt=con.prepareStatement(sql);

CallableStatementcstmt=

con.prepareCall("{CALLdemoSp(?,?)}");

5、執行SQL語句

Statement介面提供了三種執行SQL語句的方法:executeQuery、executeUpdate

和execute

1、ResultSetexecuteQuery(StringsqlString):執行查詢資料庫的SQL語句

,返回一個結果集(ResultSet)對象。

2、intexecuteUpdate(StringsqlString):用於執行INSERT、UPDATE或

DELETE語句以及SQLDDL語句,如:CREATETABLE和DROPTABLE等

3、execute(sqlString):用於執行返回多個結果集、多個更新計數或二者組合的

語句。鏈談粗

具體實現的代碼:

ResultSetrs=stmt.executeQuery("SELECT*FROM...");

introws=stmt.executeUpdate("INSERTINTO...");

booleanflag=stmt.execute(Stringsql);

6、處理結果

兩種情況:

1、執行更新返回的是本次操作影響到的記錄數。

2、執行查詢返回的結果是一個ResultSet對象。

6?1ResultSet包含符合SQL語句中條件的所有行,並且它通過一套get方法提供了對這些

行中數據的訪問。

6?1使用結果集(ResultSet)對象的訪問方法獲取數據:

while(rs.next()){

Stringname=rs.getString("name");

Stringpass=rs.getString(1);//此方法比較高效

}

(列是從左到右編號的,並且從列1開始)

7、關閉JDBC對象

操作完成以後要把所有使用的JDBC對象全都關閉,以釋放JDBC資源,關閉順序和聲

明順序相反:

1、關閉記錄集

2、關閉聲明

3、關閉連接對象

if(rs!=null){//關閉記錄集

try{

rs.close();

}catch(SQLExceptione){

e.printStackTrace();

}

}

if(stmt!=null){//關閉聲明

try{

stmt.close();

}catch(SQLExceptione){

e.printStackTrace();

}

}

if(conn!=null){//關閉連接對象

try{

conn.close();

}catch(SQLExceptione){

e.printStackTrace();

}

}

⑨ jdbc 能執行復雜的sql語句如下面的語句:

在控制台能運行就應該能執行。

⑩ 使用jdbc連接資料庫後執行sql語句後向sql語句中傳參

試著換一種方式,如下:

String tSQLcmd = "SELECT 1 FROM SYSCAT.TABLES WHERE TABNAME = ?";

.....

pstmt1.setString(1, tableName.toUpperCase());


求採納