hibernate的資料預設儲存位置_每日一課 | 如何在Hibernate中呼叫儲存過程
技術標籤:hibernate的資料預設儲存位置
在本教程中,您將學習如何在Hibernate中呼叫儲存過程。MySQL儲存過程
這是一個MySQL儲存過程,該過程接受股票程式碼引數並返回相關的股票資料。
DELIMITER $$CREATEPROCEDURE`GetStocks`(int_stockcode varchar(20))BEGINSELECT* FROMstock wherestock_code = int_stockcode;END$$
DELIMITER ;
在MySQL中,您可以使用call關鍵字簡單地呼叫它:
CALLGetStocks('7277');
休眠呼叫儲存過程
在Hibernate中,有三種方法可以呼叫資料庫儲存過程。1.本機SQL – createSQLQuery
您可以使用createSQLQuery()直接呼叫儲存過程。
Query query = session.createSQLQuery("CALL GetStocks(:stockCode)")
.addEntity(Stock.class)
.setParameter("stockCode", "7277");
List result = query.list();for(inti=0; iStock stock = (Stock)result.get(i);
}
2.註解中的NamedNativeQuery
在@NamedNativeQueries批註中宣告儲存過程。
//Stock.java
[email protected]({@NamedNativeQuery(
name = "callStockStoreProcedure",
query = "CALL GetStocks(:stockCode)",
resultClass = Stock.class
)
})@[email protected](name = "stock")publicclassStockimplementsjava.io.Serializable{
用getNamedQuery()呼叫它。
Query query = session.getNamedQuery("callStockStoreProcedure")
.setParameter("stockCode", "7277");
List result = query.list();for(inti=0; iStock stock = (Stock)result.get(i);
System.out.println(stock.getStockCode());
}
3. XML對映檔案中的sql-query
在“sql-query”標籤中宣告您的儲存過程。
...<hibernate-mapping><classname="com.mkyong.common.Stock"table="stock"...><idname="stockId"type="java.lang.Integer"><columnname="STOCK_ID"/><generatorclass="identity"/>id><propertyname="stockCode"type="string"><columnname="STOCK_CODE"length="10"not-null="true"unique="true"/>property>
...class> <sql-queryname="callStockStoreProcedure"><returnalias="stock"class="com.mkyong.common.Stock"/>sql-query>hibernate-mapping>
用getNamedQuery()呼叫它。
Query query = session.getNamedQuery("callStockStoreProcedure")
.setParameter("stockCode", "7277");
List result = query.list();for(inti=0; iStock stock = (Stock)result.get(i);
System.out.println(stock.getStockCode());
}
結論
上面的三種方法做同樣的事情,在資料庫中呼叫儲存過程。三種方法之間沒有太大區別,您選擇哪種方法取決於您的個人喜好。翻譯自:https://mkyong.com/hibernate/how-to-call-store-procedure-in-hibernate/
推薦閱讀--
當一個程式設計師飛速敲鍵盤時,他在幹嘛?
臥槽!最新程式語言排名,Java 淪為老二。。
為何程式設計師上班時間總戴個耳機,看完恍然大悟...
每日一課 | 如何將Java物件讀取和寫入檔案
每日一課 | Java Final關鍵字示例
球分享
球點贊
球在看