【文章內容簡介】
xecuteQuery () //執(zhí)行PreparedStatement對象,返回單結果集 ? int executeUpdate () //執(zhí)行PreparedStatement對象,返回操作影響的行數(shù) ? boolean execute () //執(zhí)行PreparedStatement對象,返回布爾值 2021/11/11 Java Web開發(fā)技術 33 PreparedStatement接口的方法說明 ? 其中的參數(shù) parameterIndex表示在構造PreparedStatement對象時” ?”從左到右出現(xiàn)的位置,從 1開始。 ? 參數(shù) x表示給” ?”設定的值。 ? 究竟用哪一個 setXXX()方法,由” ?”所表示的參數(shù)類型來決定。 ? 因為 x的類型是 ,而參數(shù)的類型是某種數(shù)據(jù)庫中的數(shù)據(jù)類型,因此應該保證它們的類型能夠相對應。一般來說,它們有下面的對應關系如下表所示: 2021/11/11 Java Web開發(fā)技術 34 數(shù)據(jù)庫數(shù)據(jù)類型和 Java數(shù)據(jù)類型的對應關系 JD B C 類型 Jav a 類型 D A T A L I N K j a v a . n e t . U R L D A T E j a v a . s ql . D a t e T I M E j a v a . s ql . T i m e B I G I N T l o ng S M A L L I N T s ho r t C H A R , V A R C H A R , L O N G V A R C H A R S t r i ng J A V A _O B J E C T j a v a c l a s s N U M E R I C j a v a , m a t h . B i g D e c i m a l I N T E G E R i nt , I nt e g e r R E A L f l o a t , F l o a t D O U B L E do ubl e , D o ub le B I T , B O O L E A N bo o l e a n, B o o l e a n A R R A Y A r r a y T I N Y I N T by t e B I N A R Y , V A R B I N A R Y , L O N G V A R B I N A R Y by t e [ ] 2021/11/11 Java Web開發(fā)技術 35 數(shù)據(jù)庫數(shù)據(jù)類型和 Java數(shù)據(jù)類型的對應關系 ? JDBC類型 Java類型 ? DATALINK ? DATE ? TIME ? BIGINT long ? SMALLINT short ? CHAR, VARCHAR, LONGVARCHAR String 2021/11/11 Java Web開發(fā)技術 36 數(shù)據(jù)庫數(shù)據(jù)類型和 Java數(shù)據(jù)類型的對應關系 ? JDBC類型 Java類型 ? JAVA_OBJECT java class ? NUMERIC java, ? INTEGER int, Integer ? REAL float, Float ? DOUBLE double, Double 2021/11/11 Java Web開發(fā)技術 37 數(shù)據(jù)庫數(shù)據(jù)類型和 Java數(shù)據(jù)類型的對應關系 ? JDBC類型 Java類型 ? BIT, BOOLEAN boolean, Boolean ? ARRAY Array ? TINYINT byte ? BINARY, VARBINARY, LONGVARBINARY byte[] 2021/11/11 Java Web開發(fā)技術 38 使用 PreparedStatement 舉例 ……………… st=(insert into EMP(EMPNO,ENAME) values (?,?))。 (1,7777)。 (2,Adam)。 ……………… 2021/11/11 Java Web開發(fā)技術 39 .創(chuàng)建 CallableStatement對象 ? CallableStatement對象為數(shù)據(jù)庫提供了一種以標準形式調用儲存過程的方法。 ? CallableStatement由 Connection對象的方法prepareCall()創(chuàng)建。 ? 其中的參數(shù) sql形式為: {[? =] call stored procedure name [parameter,parameter ...]} call前面的” ?”表示過程返回結果參數(shù)。方括號指示其中的內容是可選的。它們不是語法的必要部分。 2021/11/11 Java Web開發(fā)技術 40 ? 如: CallableStatement cStmt = ({call showEmployees(?,?)}); 2021/11/11 Java Web開發(fā)技術 41 CallableStatement接口中的主要方法 ? byte getByte(int parameterIndex) //返回序號為 parameterIndex參數(shù)的字節(jié)值,參數(shù)類型為 JDBC TINYINT ? Date getDate(int parameterIndex) //返回序號為 parameterIndex參數(shù)的值,參數(shù)值的類型為 2021/11/11 Java Web開發(fā)技術 42 CallableStatement接口中的主要方法 ? double getDouble(int parameterIndex) //返回序號為 parameterIndex參數(shù)的 double類型值 ? float getFloat(int parameterIndex) //返回序號為 parameterIndex參數(shù)的 float類型值 2021/11/11 Java Web開發(fā)技術 43 CallableStatement接口中的主要方法 ? int getInt(int parameterIndex) //返回序號為 parameterIndex參數(shù)的 int類型值 ? String getString(int parameterIndex) //返回序號為 parameterIndex參數(shù)的 String類型值 2021/11/11 Java Web開發(fā)技術 44 CallableStatement接口中的主要方法 ? void registerOutParameter(int parameterIndex, int sqlType) //將序號為 parameterIndex的參數(shù)注冊為 JDBC中的數(shù)據(jù)類型 ? void setDouble(String parameterName, double x) // 設置參數(shù) parameterName為 double類型值 x 2021/11/11 Java Web開發(fā)技術 45 CallableStatement接口中的主要方法 ? void setFloat(String parameterName, float x) // 設置參數(shù) parameterName為 float類型值 x ? void setInt(String parameterName, int x) // 設置參數(shù) parameterName為 int類型值 x 2021/11/11 Java Web開發(fā)技術 46 方法說明 這里的 parameterIndex、 x和 sqlType的意義同 prepareStatement中的說