代码之家  ›  专栏  ›  技术社区  ›  TaherT

建议在Spring中调用存储过程的泛化代码

  •  0
  • TaherT  · 技术社区  · 14 年前
    public class TestProcedure extends StoredProcedure {
    
    TestProcedure(BasicDataSource dataSource, String procName) {
        this.setDataSource(dataSource);
        this.setSql(procName);
        this.declareParameter(new SqlParameter("@test", Types.INTEGER));
    }
    
    public List<Detail> executeProcedure(Integer studentId) {
        Map inParams = new HashMap();
        inParams.put("@test", studentId);
        this.compile();
        List<Detail> details = new ArrayList<Detail>();
        try {
            ArrayList<LinkedHashMap<String, Object>> list = (ArrayList<LinkedHashMap<String, Object>>) execute(inParams).get("#result-set-1");
            for (LinkedHashMap<String, Object> linkedHashMap : list) {
                Detail detail = new Detail();
                detail.setStudent_id((Integer) linkedHashMap.get("student_id"));
                detail.setStudent_name((String) linkedHashMap.get("student_name"));
                detail.setStudent_marks((Double) linkedHashMap.get("student_marks"));
                details.add(detail);
            }
        } catch (Exception e) {
            System.out.println("Error Man : " + e);
        }
        return details;
    }
    

    }

    1 回复  |  直到 14 年前
        1
  •  0
  •   DwB    14 年前

    看看JPA、iBatis或Hibernate。所有这些都是包含在Spring中的ORM数据访问包。我用的是iBatis,但我确信这三种方法中的任何一种都可以