0

有没有办法通过 java 代码使用 hibernate/jdbc 调用在 SQL 服务器上创建的存储过程,并将值/对象列表作为参数传递?如果是,那么我该如何实现?我知道如何调用存储过程,但到目前为止,我使用的存储过程只传递了几个参数,而不是完整的值列表,因为我打算进行批量更新/插入。如果我做类似以下的事情,这有意义吗?

getTemplate().getSessionFactory().getCurrentSession().createSQLQuery("CALL proc_insert(:list)").setParameterList("list", objList).executeUpdate();
4

1 回答 1

1

这可能有助于使用 callableStatement

String getDBUSERByUserIdSql = "{call getDBUSERByUserId(?,?,?,?)}";
callableStatement = dbConnection.prepareCall(getDBUSERByUserIdSql);
callableStatement.setInt(1, 10);
callableStatement.registerOutParameter(2, java.sql.Types.VARCHAR);
callableStatement.registerOutParameter(3, java.sql.Types.VARCHAR);
callableStatement.registerOutParameter(4, java.sql.Types.DATE);

// execute getDBUSERByUserId store procedure
callableStatement.executeUpdate();

String userName = callableStatement.getString(2);
String createdBy = callableStatement.getString(3);
Date createdDate = callableStatement.getDate(4);

更多信息请点击

于 2013-09-17T10:18:16.563 回答