當前位置:首頁 » 存儲配置 » sqlquery調用存儲過程

sqlquery調用存儲過程

發布時間: 2022-10-01 04:24:45

『壹』 sql存儲過程如何調用存儲過程

1、首先先創建一個存儲過程,代碼如圖,存儲過程主要的功能是為表JingYan插入新的數據。

『貳』 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
請採納答案,支持我一下。

『叄』 Hibernate調用存儲過程,使用SQLQuery的方式,請問如果返回參數是CURSOR,怎麼寫呢

我使用的oracle
proc.registerOutParameter(2, OracleTypes.CURSOR);
不過第一個數好像是從1開始的吧

『肆』 請問什麼是存儲過程,存儲過程作用是什麼,什麼情況下才用存儲過程如何用sql調用存儲過程

sql語句執行的時候要先編譯,然後執行。存儲過程(Stored Procere)是一組為了完成特定功能的SQL語句集,經編譯後存儲在資料庫中。用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它。存儲過程是資料庫中的一個重要對象,任何一個設計良好的資料庫應用程序都應該用到存儲過程.
這是一個基礎教程你看看http://www.aspxuexi.com/asp/sp/2007-11-20/2990.htm

『伍』 Hibernate 調用存儲過程 該語句沒有返回結果集

修改存儲過程試試:
alter procere test()
as
SET NOCOUNT ON --加上這句話;有的出現這個問題,加上之後問題解決了;嘿嘿

『陸』 關於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

『柒』 寫個動態查詢的Sql存儲過程。調用不成功。請高手指點

改一下存儲過程
if exists (select * from sysobjects where name='studentQuery')
drop procere studentQuery
go
create procere studentQuery
@sqlStr nvarchar(100)
as
declare @sql nvarchar(1000)
set @sql=''
set @sql='select * from 'studentQuery'where 1=1' + ''+ @sqlStr
exec(@sql)

『捌』 使用query控制項怎麼調用存儲過程

過程如下:
public Boolean doInHibernate(Session session)
throws HibernateException, SQLException {
try{
Transaction tr = session.beginTransaction();
SQLQuery query = session.createSQLQuery("{call CommandAdapter(?,?,?,?)}");
query.setString(0,"ls");
query.setInteger(1, machineid);
query.setString(2, param);
query.setInteger(3, 0); //
query.executeUpdate();
tr.commit();
return true;
}catch(Exception e){
e.printStackTrace();
return false;
}finally{

session.close();

}
}

使用hibernate調用帶參數返回值的存儲過程方法

在調用帶參數返回值的方法時,需使用到CallableStatement對象。因此,首先得設法獲取一個Connection。

獲取Connection 方法:

(1)session.connection();//此方法目前已被棄用

(2)SessionFactoryUtils.getDataSource(sessionFactory).getConnection()


過我在使用SessionFactoryUtils.getDataSource(sessionFactory)時,一直獲取的都是空值,為此參考
SessionFactoryUtils的源代碼直接利用ConnectionProvider對象來獲取一個Connection實例。

完整代碼:

SessionFactory sessionFactory=this.getSessionFactory();
if (sessionFactory instanceof SessionFactoryImplementor){
ConnectionProvider cp = ((SessionFactoryImplementor) sessionFactory).getConnectionProvider();
try {

CallableStatement statement = cp.getConnection().prepareCall(
"{call MachineDataQuery(?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");
statement.setInt(1, machineId);
statement.setInt(2, jobId);
statement.setInt(3, partTypeId);
statement.setInt(4, compentId);
statement.setInt(5, opId);
statement.setInt(6, roleId);
statement.setInt(7, userId);
statement.setString(8, sd);
statement.setString(9, ed);
statement.registerOutParameter(10, Types.FLOAT);
statement.registerOutParameter(11, Types.FLOAT);
statement.registerOutParameter(12, Types.FLOAT);
statement.registerOutParameter(13, Types.FLOAT);
statement.registerOutParameter(14, Types.FLOAT);
statement.execute();
System.out.println(statement.getFloat(10));
System.out.println(statement.getFloat(11));
System.out.println(statement.getFloat(12));
System.out.println(statement.getFloat(13));
System.out.println(statement.getFloat(14));
} catch (SQLException e) {
e.printStackTrace();
}finally{
cp.close();
}
}

ps:切記存儲過程中不可有多餘的print或select語句,否則會拋出異常「com.microsoft.sqlserver.jdbc.SQLServerException: 已生成用於更新的結果集。」

『玖』 sql 查詢條件中調用存儲過程

存儲過程就是一個完整的SQL語句,
所有的條件什麼之類的直接定在存儲過程里,
然後在程序中直接調用這個存儲過程就行了,
這樣做的好處就是如果以後程序某個功能什麼要稍微改善一下,直接改寫存存儲過程里的SQL語句就行了.不用再重新編輯源程序...

『拾』 sql server 游標調用存儲過程

不可以的,存儲過程不會返回遊標結果集,而for後面的需要的是游標結果集

熱點內容
為什麼文件夾有鎖 發布:2025-05-14 05:53:21 瀏覽:944
安卓手機哪個處理器是最好的 發布:2025-05-14 05:40:23 瀏覽:530
java語言實現 發布:2025-05-14 05:34:43 瀏覽:234
數控系統主軸配置參數有哪些 發布:2025-05-14 05:25:55 瀏覽:819
二級緩存微服務 發布:2025-05-14 05:13:55 瀏覽:101
sqlserverwhencase 發布:2025-05-14 05:11:35 瀏覽:434
安卓odd是什麼意思 發布:2025-05-14 04:49:57 瀏覽:921
安卓哪個app能查詢航班 發布:2025-05-14 04:49:04 瀏覽:558
linux定時shell腳本 發布:2025-05-14 04:49:00 瀏覽:684
審計需要什麼配置 發布:2025-05-14 04:48:55 瀏覽:550