List<Map<String, Object>> entryList = jdbcTemplate.execute(new CallableStatementCreator() {
public CallableStatement createCallableStatement(Connection con) throws SQLException {
String storedProc = "{ call JSJD_DXJG(?,?,?,?,?) }";// 调用的sql
CallableStatement cs = con.prepareCall(storedProc);
cs.setString(1, year);// 设置输入参数的值
cs.setString(2, month);
cs.setString(3, projectrate);
cs.setString(4, v_type);
cs.registerOutParameter(5, OracleTypes.CURSOR);// 注册输出参数的类型
return cs;
}
}, new CallableStatementCallback() {
public Object doInCallableStatement(CallableStatement cs) throws SQLException,DataAccessException {
List resultsMap = new ArrayList();
cs.execute();
ResultSet rs = (ResultSet) cs.getObject(5);// 获取游标一行的值
while (rs.next()) {// 转换每行的返回值到Map中
Map rowMap = new HashMap();
rowMap.put("org_code", rs.getString("org_code"));
rowMap.put("org_name", rs.getString("org_name"));
rowMap.put("num", rs.getString("num"));
rowMap.put("finsh", rs.getString("finsh"));
rowMap.put("bfb", rs.getString("bfb"));
rowMap.put("project_money", rs.getString("project_money"));
resultsMap.add(rowMap);
}
rs.close();
return resultsMap;
}
});
- 大小: 219.2 KB
分享到:
相关推荐
存储过程使用 `SYS_REFCURSOR` 输出参数将结果集返回给调用方。 `P_EMP_ADD` 存储过程用于添加新员工信息,并返回添加结果。该过程接收两个输入参数:`V_ID` 和 `V_NAME`,分别用于添加员工 ID 和姓名。存储过程...
3. **使用`jdbcTemplate`调用存储过程**:通过Spring框架提供的`jdbcTemplate`来执行存储过程。`execute()`方法接收两个参数: - `procedure`:存储过程的调用字符串。 - `new CallableStatementCallback()`:这是...
4. **设置输入和输出参数**:在CallableStatement对象中,使用`registerOutParameter()`方法为存储过程的输出参数进行注册,并使用`setObject()`方法设置输入参数。 5. **执行存储过程**:最后,调用`call()`方法...
5. **处理结果**:如果存储过程有返回值或者输出参数,可以使用`registerOutParameter`和`getObject`方法获取。 `源码`标签表明我们将看到实际的代码示例,而`工具`标签暗示可能涉及到Spring框架的某些工具类。在这...
2. 使用Spring的jdbcTemplate调用存储过程,处理输入输出参数。 3. 将存储过程返回的数据在Java后端进行处理,封装成适合前端的数据结构。 4. Flex前端通过HTTP服务或AMF获取数据,展示在DataGrid中,并实现分页导航...
在这个例子中,我们创建了一个`CallableStatementCreator`来定义存储过程的调用,并通过`CallableStatementCallback`来处理输出参数。 总结一下,Java中调用存储过程主要涉及到以下几点: 1. 使用`JdbcTemplate`或`...
接着,调用存储过程:在SpringBoot应用中,你可以使用JdbcTemplate或者NamedParameterJdbcTemplate来调用存储过程。例如,使用JdbcTemplate执行上面创建的存储过程: ```java @Autowired private JdbcTemplate ...
Java作为广泛使用的后端开发语言,提供了多种方式来调用数据库中的存储过程。 1. **JDBC(Java Database Connectivity)调用存储过程** - JDBC是Java与数据库交互的标准接口,通过`CallableStatement`对象来执行...
3. **调用存储过程**:通过jdbcTemplate对象调用存储过程并处理返回的结果集。 示例代码如下: ```java import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core....
`oracle_存储过程实例.doc`和`oracle存储过程学习经典[语法+实例+调用].doc`可能是关于如何在Oracle中创建、修改和执行存储过程的文档,包括定义输入输出参数、使用游标、异常处理等内容。`oracle存储过程超详细使用...
需要指定存储过程的名称,以及输入和输出参数。 4. **返回响应**:将存储过程的结果包装成JSON格式,通过HTTP响应返回给前端。 5. **前端展示**:前端接收到响应后,解析JSON数据并更新页面内容。 在实际开发中,...
7. **存储过程**:通过`call`方法,`JdbcTemplate`也可以调用数据库中的存储过程,支持输入、输出和InOut参数。 8. **自定义SQL执行**:除了提供预定义的方法,`JdbcTemplate`还允许开发人员自定义SQL执行逻辑,...
通过`{call}`语法来调用存储过程,参数可以作为输入、输出或输入/输出参数传递。例如,调用一个名为`PROCEDURE_NAME`的存储过程,可能的代码如下: ```java CallableStatement cs = connection.prepareCall("{ call...
而`SimpleJdbcCall`则可以方便地处理存储过程的调用,包括输入参数、输出参数和结果集的处理。 此外,Spring JDBC还支持事务管理。通过`PlatformTransactionManager`接口,可以进行编程式或声明式的事务控制,确保...
- **SimpleJdbcCallClass**:这个类则专门用于调用存储过程或函数,支持输入和输出参数的设置。 - **In-Memory Databases**:为了便于测试和快速原型设计,书中还介绍了如何使用内存数据库,如H2或HSQLDB,这些...
SimpleJdbcCall类专门用于调用数据库的存储过程,它可以自动处理输入、输出参数和结果集。 10. **最佳实践** - 使用连接池如HikariCP,以提高数据库连接的复用和性能。 - 避免硬编码SQL,可以使用MyBatis或JPA等...
例如,创建CallableStatement,设置输入参数和输出参数,然后执行executeUpdate()获取结果。 JdbcTemplate是Spring为JDBC提供的一种抽象,它简化了数据库操作。例如,执行插入操作时,我们可以使用JdbcTemplate的...
`SimpleJdbcInsert`允许你设置表名和列名,然后自动构建插入语句,而`SimpleJdbcCall`则可以方便地调用数据库中的存储过程,自动处理输入参数和输出结果。 在事务管理方面,Spring JDBC提供了`...