當前位置:首頁 » 存儲配置 » hibernate4存儲過程

hibernate4存儲過程

發布時間: 2022-06-14 02:39:23

① hibernate與存儲過程

那存儲過程是不是在SSH中沒什麼用?
答:存儲過程跟框架半毛錢關系都沒有,不存在有用沒用的情況。
如果業務需要,該寫存儲過程還是要寫。
hibernate本身並不是萬能的,很多它做不到的,或者不能夠很好的做到的。

我們可以使用存儲過程,ibatis等其它手段實現。
所以說存儲過程是否需要。還是看項目環境,和業務需要的。

② 我用的是s2sh框架。hibernate怎樣調用存儲過程

匿名內部類,HibernateCallback中執行存儲過程
語法 {call 存儲過程名(?,?,?)} ?為參數佔位符
示例如下:
public void saveStoredProcere(final String partNum, final String partPopedomXML) {
getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, sqlException {
SQLQuery sqlQuery = session.createSQLQuery("{call P_AddPartPopedom(?, ?)}");
sqlQuery.setString(0, partNum);
sqlQuery.setString(1, partPopedomXML);
sqlQuery.executeUpdate();
return null;
}
});

另外如果要設置返回參數的話,可以使用registerOutParameter方法

有問題再追問,good luck!~

③ Oracle的存儲過程基本語法和hibernate調用其存儲過程

在oracle中,可以在資料庫中定義子程序,這種程序塊叫存儲過程(procere),它存放在數據字典中,可以在不同用戶和應用程序中共享,並可以實現程序的優化和重用。 2:存儲過程的有點?? 過程運行在伺服器端,執行速度快? 過程執行一次後代碼就駐留在高速緩存中,在以後的操作中,直接調用緩存數據。? 確保資料庫的安全性,可以不授權用戶直接訪問應用程序中的一些表,而是授權用戶執行訪問資料庫的過程。? 自動完成需要預先執行的任務,過程可以在系統啟動時自動運行。、 3:存儲過程的創建和執行用戶存儲過程只能定義在當前資料庫中,可以使用sql語句或OEM創建。默認情況下,用戶創建的存儲過程歸登錄資料庫的用戶所擁有,DBA可以把許可授權給其他用戶。 Sql命令創建存儲過程 CREATE procere 過程名【(parameter parameter_mode date_type,….n)】 IS| AS BEGIN SQL_STATEMENT END 過程名其中 Parameter表示過程的參數。 parameter_mode:參數的類型,過程參數和函數參數一樣,有三種類型IN,OUT,IN OUT IN 表示參數是輸入給過程的。 OUT表示採納數載過程中被賦值,可以傳給過程的外部。 IN OUT表示可以傳內,可以傳外。 調用存儲過程直接輸入存儲過程的名字可以執行一個已經定義的存儲過程。 存儲過程的編輯修改修改存儲過程雖然可以和修改視圖一樣,用ALTER procere,但是他是用來重新編譯和驗證用的,如果要修改過程定義,建議還是用create or replace。 存儲過程的刪除當某個過程不再需要的時候,應該將其從內存中刪除,以釋放它佔用的資源。 Drop procere 存儲過程名。 Drop procere update_info. 觸發器觸發器(trigger)是一些過程,與表聯系緊密,用於保護表中的數據,當一個基表被修改時,觸發器自動就會執行。例如出入其可以實現多個表間數據的一致性和完整性。一般情況下,對表數據的操作有增刪查改,維護數據的觸發器也可以分為多種,每張基表最多可以建立12個觸發器。 1:Before insert 2:before insert fo each row; 3:after inert 4:after insert for each row 5:before update 6:before update for each row 7:after update 8:after update for each row; 9:before delete; 10:before delete for each row 11:after delete 12:after delete for each row. 利用sql語句創建觸發器語法規則 Create or replace trigger 觸發器名 {before| after| instead of} {delete 【or insert】【or update】【of column ….n 】} On 表名|視圖名【for each row 】[]where condition]] Sql_statement[,,,n] 參數說明 Instead of :指定在創建替代觸發器。 Of column 指定在哪些列上進行觸發。。。創建觸發器的限制 1:觸發器中有效的語句可以包括DML語句,但是不能包括DDL,rollback,commit ,savepoint都不適用。

④ 關於hibernate調用存儲過程

調用存儲過程可以不寫配置文件,直接在類中搞定! 有問題可以網路Hi 我!~
例子
public void saveStoredProcere(final String adminId, final String menuId, final String toolbars) {
getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
SQLQuery sqlQuery = session.createSQLQuery("{call P_SaveOperatorPopedom(?,?,?)}");
sqlQuery.setString(0, adminId);
sqlQuery.setString(1, menuId);
sqlQuery.setString(2, toolbarsXML);
sqlQuery.executeUpdate();
return null;
}
});
}

重點是這個寫法 session.createSQLQuery("{call P_SaveOperatorPopedom(?,?,?)}");
我這邊用的是spring提供的HibernateDaoSupport

熱點內容
電腦怎麼看網路密碼 發布:2025-01-10 14:56:40 瀏覽:108
java調用shell腳本參數 發布:2025-01-10 14:43:51 瀏覽:52
php數組計數 發布:2025-01-10 14:23:03 瀏覽:474
s盒演算法 發布:2025-01-10 14:16:42 瀏覽:643
c語言用二分法求方程 發布:2025-01-10 14:15:45 瀏覽:220
廣場舞加密 發布:2025-01-10 14:13:21 瀏覽:521
網路密碼顯示低安全性是什麼意思 發布:2025-01-10 14:11:49 瀏覽:782
恥辱2博士保險箱密碼是多少 發布:2025-01-10 14:11:41 瀏覽:101
如何把伺服器搭在自己電腦 發布:2025-01-10 14:10:57 瀏覽:585
水晶可以存儲 發布:2025-01-10 14:09:35 瀏覽:391