java - 使用 hibernate/jdbc 以值/对象列表作为参数从 java 代码调用存储过程

标签 java sql-server hibernate stored-procedures jdbc

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

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

最佳答案

这可能有帮助 使用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);

了解更多信息click

关于java - 使用 hibernate/jdbc 以值/对象列表作为参数从 java 代码调用存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18846851/

相关文章:

java - 更新工作——如何通过在 android 的触摸屏上滑动手指来测试智能手机屏幕?

用于 Google AppEngine 端点的 Java API 错误 : Response Not Found

sql-server - 为什么我会收到错误 "Cannot drop the database ' test' 因为它正在用于复制。错误 : 3724"?

java - 将 Hibernate 集合保存在内存中

hibernate - 您可以将替换变量传递给 Hibernate 映射文件吗?

Java servlet - 从子页面转发/重定向

java - 如何将 "Articles"示例的应用程序图标放在 Oracle WebCenter 站点的应用程序栏中

c# - 将 DateTime 插入 sql server 2008 时出现奇怪的错误

c# - 如何在 Xamarin 中使用 SQL Server LocalDB?

java - 遍历 POJO 属性并将其设置为另一个对象