Hibernate中怎么调用存储过程

Hibernate中怎么调用存储过程,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

天元ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!

下边是简单的Hibernate存储过程

Java代码:

create   PROCEDURE  proc()      begin         select   *   from  proctab;      end ;   create   PROCEDURE  proc()   begin      select   *   from  proctab;   end ;

Hibernate存储过程调用的一种方法是通过Hibernate传统的xml映射方式去调用。

Java代码:

                                                                                                                                              {call proc()}                                                                                                                   {call proc()}     

调用方法 Java代码:

Session ss= HibernateSessionFactory.getSession()     List li=ss.getNamedQuery("getUser").list();     ss.close();             Session ss= HibernateSessionFactory.getSession()          List li=ss.getNamedQuery("getUser").list();          ss.close();

及其类似jdbc的方法 Java代码:

Session session =HibernateSessionFactory.getSession();      Connection conn = session.connection();      ResultSet rs =null;     CallableStatement call = conn.prepareCall("{Call proc()}");     rs = call.executeQuery();     rs.close();     session.close();     Session session =HibernateSessionFactory.getSession();   Connection conn = session.connection();   ResultSet rs =null;  CallableStatement call = conn.prepareCall("{Call proc()}");  rs = call.executeQuery();  rs.close();  session.close();

这种方法基本上就是jdbc,不过很简单,总是感觉怪怪的~还有就是通过强大的createSQLQuery来实现,o(∩_∩)o...哈哈  个人比较喜欢这种方法

Java代码:

Session session =HibernateSessionFactory.getSession();      SQLQuery query = session.createSQLQuery("{Call proc()}");     List list =query.list();     session.close();     Session session =HibernateSessionFactory.getSession();   SQLQuery query = session.createSQLQuery("{Call proc()}");  List list =query.list();  session.close();

如果没有返回值 直接用execute的方法就可以了,(*^__^*)  忘了一个重要的问题就是Hibernate存储过程的传参问题


Java代码:

CallableStatement call = conn.prepareCall("{Call proc(?)}");     call.setString(1, 参数);     rs = call.executeQuery();     CallableStatement call = conn.prepareCall("{Call proc(?)}");  call.setString(1, 参数);  rs = call.executeQuery();

Java代码:

SQLQuery query = session.createSQLQuery("{Call proc(?)}");     query.setString(0, 参数);     List list =query.list();

看完上述内容,你们掌握Hibernate中怎么调用存储过程的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


网站栏目:Hibernate中怎么调用存储过程
分享链接:http://scyanting.com/article/gjoeph.html