2010-07-01 91 views

回答

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) { 
      } 
    } 
} 
+1

雖然沒有使用Hibernate。 – skaffman 2010-07-01 13:00:31

1

Hibernate將存儲過程調用定義爲命名查詢。該文檔在Hibernate配置中解釋how to set this up

從Spring開始,您可以使用各種HibernateTemplate.findByNamedQuery(...)方法調用命名查詢。

0

既然你已經在使用Spring與Hibernate,我會建議使用Spring類。你可以擴展上面提到的StoredProcedure類,還有其他的選擇。如果你有一個基本的存儲過程,我會說最簡單的方法就是使用Spring的SimpleJdbcCall類。 Spring documentation用代碼片段很好地覆蓋了這個類。