繁体   English   中英

在休眠3中使用存储过程

[英]using stored procedure in hibernate 3

您好,自5个月以来,我一直在使用hibernate + spring,但从未在hibernate中使用过存储过程,因此,任何人都可以告诉我如何从DB(MySQL)调用存储过程。

Hibernate将存储过程调用定义为命名查询。 该文档说明了如何在Hibernate配置中进行设置

从Spring开始,您可以使用各种HibernateTemplate.findByNamedQuery(...)方法来调用命名查询。

Spring有一个StoredProcedure类,您可以扩展该类以调用存储过程。

class MyStoredProcedure extends StoredProcedure {
     public MyStoredProcedure(DataSource ds) {
          this.setDataSource(ds);
          this.setSql("store_procedure_name");
          this.declareParameter(new SqlParameter("name", Types.VARCHAR);
          this.compile();
     }

     public void callProcedure() {
          Map<string, String> inParams = new HashMap<String, String>();
          inParams.put("name", "taher");
          try {
               execute(inParams);
          } catch (DataAccessException dae) {
          }
     }
}

由于您已经将Spring与Hibernate结合使用,因此建议您使用Spring类。 您可以扩展上面提到的StoredProcedure类,还有其他替代方法。 如果您有一个基本的存储过程,我会说最简单的调用方法是使用Spring的SimpleJdbcCall类。 Spring文档通过代码片段很好地涵盖了该类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM