在使用Hibernate4調用MySQL存儲過程之前需要先配置Hibernate。 在hibernate.cfg.xml中加入jdbc參數和mysql驅動類。
<!-- 數據庫連接參數 --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/test</property> <property name="connection.username">root</property> <property name="connection.password">password</property>
接著在實體類對應的映射文件中定義存儲過程。
<sql-query name="testProcedure"> call proc_test(:param1, :param2) </sql-query>
其中testProcedure是Hibernate中定義的查詢名稱,param1和param2是存儲過程中的輸入參數。 接著在Java代碼中通過Session調用存儲過程:
Query query = session.getNamedQuery("testProcedure"); query.setParameter("param1", value1); query.setParameter("param2", value2); List result = query.list();
其中value1和value2是傳入存儲過程的參數,result是存儲過程的返回結果列表。