您好我从5个月开始使用hibernate + spring但从未在hibernate中使用过存储过程所以请任何人告诉我如何从DB(MySQL)调用存储过程....
答案 0 :(得分:1)
Hibernate将存储过程调用定义为命名查询。文档解释了Hibernate配置中的how to set this up。
从Spring开始,您可以使用各种HibernateTemplate.findByNamedQuery(...)
方法调用命名查询。
答案 1 :(得分:0)
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) {
}
}
}
答案 2 :(得分:0)
由于你已经在使用Spring和Hibernate,我建议使用Spring类。您可以扩展上面提到的StoredProcedure类,还有其他替代方法。如果你有一个基本的存储过程,我会说最简单的方法就是使用Spring的SimpleJdbcCall类。 Spring documentation很好地涵盖了这个类与代码片段。