-
JDBC 對事務管理的支持。查看全部
-
事務的特點。查看全部
-
輸入?yún)?shù) call 名(' ')查看全部
-
存儲過程JDBC調(diào)用步驟查看全部
-
dbcp與c3p0的區(qū)別查看全部
-
連接池是創(chuàng)建和管理一個連接的緩沖池的技術,這些連接準備好被任何需要它們的線程使用. 如果JSP使用JDBC直接訪問數(shù)據(jù)庫中的數(shù)據(jù),每一次數(shù)據(jù)訪問請求都必須經(jīng)歷建立數(shù)據(jù)庫連接等步驟,而連接數(shù)據(jù)庫是一件消耗資源的工作. 如果頻繁發(fā)生這種數(shù)據(jù)庫操作(一天10萬訪問量),系統(tǒng)的性能會急劇下降,甚至會導致系統(tǒng)崩潰,數(shù)據(jù)庫連接池技術是解決這個問題最常用的方法, 許多應用程序服務器如Weblogic、Tomcat等都提供了這項技術. 數(shù)據(jù)庫連接池的主要操作: 1.建立數(shù)據(jù)庫連接池對象(服務器啟動) 2.按照事先指定的參數(shù)創(chuàng)建初始數(shù)量的數(shù)據(jù)庫連接(即空閑連接數(shù)) 3.對于一個數(shù)據(jù)庫訪問請求,直接從連接池中得到一個連接,如果數(shù)據(jù)庫連接池對象中沒有空閑的連接,且連接數(shù)沒有達到最大值(即最大活躍連接數(shù))則創(chuàng)建一個新的數(shù)據(jù)庫連接.若達到最大連接數(shù),則需要等待其他線程釋放連接. 4.存取數(shù)據(jù)庫 5.釋放數(shù)據(jù)庫連接 (連接將放入空閑隊列中,如果實際空閑連接數(shù)大于初始空閑連接數(shù)則關閉連接) 6.關閉數(shù)據(jù)庫連接池所有連接對象(服務器停止、維護期間) 常用數(shù)據(jù)庫連接池技術: 1.dbcp 2.cp30 Tomcat默認使用的是DBCP數(shù)據(jù)庫連接池查看全部
-
使用JDBC操作數(shù)據(jù)庫時,默認開啟事務,但事務是自動提交的,對數(shù)據(jù)庫的每一個操作都是一個新的事務并自動提交. 當service中調(diào)用多個dao操作時無法保證數(shù)據(jù)的一致性. 設置事務為非自動提交,調(diào)用所有dao方法后再提交事務即可 connection.setAutoCommit(false); ....dao方法 connection.commit(); 使用Hibernate操作數(shù)據(jù)庫時,必須使用事務,但是事務是手動提交,在執(zhí)行完所有對數(shù)據(jù)庫的操作時手動提交事務. 使用Spring事務處理,@Transactional注解,被該注解標注的方法為事務方法,當執(zhí)行完方法中的所有數(shù)據(jù)庫操作方法就會自動提交事務. (在commit之前的dao方法都相當于是同一個事務里的方法,必須都執(zhí)行或都不執(zhí)行,在事務提交之前如果拋出了異常,那么事務就應回滾.) 當拋出了異常,需要在catch語句中使用rollback()方法對事務進行回滾,rollback()方法只應該在已禁用自動提交模式時使用.查看全部
-
JDBC調(diào)用存儲過程的方法 1.獲取CallableStatement對象 Connection的prepareCall(String sp)方法獲取CallableStatement實例. sp: call 存儲過程名(?,?) 2.為存儲過程設置參數(shù). IN類型(入?yún)? setString(int parameterIndex , String value) 、setInt(int parameterIndex, int value)、setXXX() OUT類型(出參) registerOutParameter(int parameterIndex , int jdbcType) 指定OUT類型參數(shù)的sql類型,使用Types類的靜態(tài)屬性. Types類:定義用于標識一般SQL類型的常量的類. 3.執(zhí)行存儲過程 execute()方法 4.處理返回的結(jié)果集或出參 結(jié)果集(即查詢數(shù)據(jù)): getResultSet(),返回ResultSet接口,然后進行遍歷. 出參: getInt(int parameterIndex) 以Java編程語言中int值的形式獲取指定的JDBC INTEGER 參數(shù)的值. getString(int parameterIndex) 以Java編程語言中String的形式獲取指定的JDBC CHAR、VARCHAR或LONGVARCHAR 參數(shù)的值. getXXX(int parameterIndex)查看全部
-
DBCP與C3P0的區(qū)別查看全部
-
1. Statement、PreparedStatement和CallableStatement都是接口(interface)。 2. Statement繼承自Wrapper、PreparedStatement繼承自Statement、CallableStatement繼承自PreparedStatement。 3. Statement接口提供了執(zhí)行語句和獲取結(jié)果的基本方法; PreparedStatement接口添加了處理 IN 參數(shù)的方法; CallableStatement接口添加了處理 OUT 參數(shù)的方法。 4. a. Statement: 普通的不帶參的查詢SQL;支持批量更新,批量刪除; b. PreparedStatement: 可變參數(shù)的SQL,編譯一次,執(zhí)行多次,效率高; 安全性好,有效防止Sql注入等問題; 支持批量更新,批量刪除; c. CallableStatement: 繼承自PreparedStatement,支持帶參數(shù)的SQL操作; 支持調(diào)用存儲過程,提供了對輸出和輸入/輸出參數(shù)(INOUT)的支持; Statement每次執(zhí)行sql語句,數(shù)據(jù)庫都要執(zhí)行sql語句的編譯 ,最好用于僅執(zhí)行一次查詢并返回結(jié)果的情形時,效率高于PreparedStatement。 PreparedStatement是預編譯的,使用PreparedStatement有幾個好處 1. 在執(zhí)行可變參數(shù)的一條SQL時,PreparedStatement比Statement的效率高,因為DBMS預編譯一條SQL當然會比多次編譯一條SQL的效率要高。 2. 安全性好,有效防止Sql注入等問題。 3. 對于多次重復執(zhí)行的語句,使用PreparedStament效率會更高一點,并且在這種情況下也比較適合使用batch; 4. 代碼的可讀性和可維護性。查看全部
-
jdbc連接池查看全部
-
jdbc連接池查看全部
-
與數(shù)據(jù)庫連接查看全部
-
DBCP(DataBase connection pool),數(shù)據(jù)庫連接池。是 apache 上的一個 java 連接池項目,也是 tomcat 使用的連接池組件。單獨使用dbcp需要2個包:commons-dbcp.jar,commons-pool.jar由于建立數(shù)據(jù)庫連接是一個非常耗時耗資源的行為,所以通過連接池預先同數(shù)據(jù)庫建立一些連接,放在內(nèi)存中,應用程序需要建立數(shù)據(jù)庫連接時直接到連接池中申請一個就行,用完后再放回去。查看全部
-
conn.setAutoCommit(false);//首先關閉JDBC對事務默認的自動提交 try{ ... conn.commit();//業(yè)務執(zhí)行都成功,提交事務 }catch(Exception e){ conn.rollback();//業(yè)務中間環(huán)節(jié)出錯,回滾事務 }查看全部
舉報
0/150
提交
取消