【发布时间】:2015-03-06 19:42:30
【问题描述】:
我已经阅读了很多关于如何使用 JdbcTemplate 调用存储过程的问题,有很多方法,例如使用 beanMapper、创建 rowMapper、使用 callableStatement,但我看到很多人这样说:
对于简单的程序,您可以使用 jdbcTemplate 的更新方法:
jdbcTemplate.update("call SOME_PROC (?, ?)", param1, param2);
我尝试这样做,我的 jdbcTemplate 变量始终为空,这是我的存储过程
CREATE OR REPLACE PROCEDURE addProce
(
num1 IN number,
num2 IN number,
result OUT number
)
IS
BEGIN
result := num1 + num2;
END;
/
这就是我称之为的类
public class UsuerDAOImpl implements UserDAO {
private JdbcTemplate jdbcTemplate;
public UsuerDAOImpl () {}
public UsuerDAOImpl (DataSource datasource) {
this.jdbcTemplate = new JdbcTemplate(datasource);
}
public int addmethodJdbc()
{
int result= 0;
int someValue= jdbcTemplate.update("addProce(?, ?, ?)", 2, 1, result);
return someValue;
}
}
我的课堂上有这个方法,它可以工作,我的 jdbctemplate 不为空
public void insertUser(User user) {
try {
String sql = "INSERT INTO USER"
+ "(a, b, c, d)"
+ " VALUES (?, ?, ?, ?)";
jdbcTemplate.update(sql, user.getA(),
usaurio.getB(),
usaurio.getC(),
usaurio.getD());
}
catch (DataAccessException dataAccessException)
{
dataAccessException.printStackTrace();
}
catch(Exception e)
{
e.printStackTrace();
}
}
我也在这里尝试了一个函数:
CREATE OR REPLACE FUNCTION addFunct
(
num1 IN number,
num2 IN number
)
return number
IS
resultado number;
BEGIN
result := num1 + num2;
return (result);
END;
/
但我的 jdbcTemplate 仍然无效
我已经知道如何用其他方式调用它们,但我想知道如何以这种简单的方式调用它们
jdbcTemplate.update("call SOME_PROC (?, ?)", param1, param2);
【问题讨论】:
标签: java spring spring-mvc stored-procedures jdbctemplate