想象一下,我有100个SELECT查询,它们的一个输入不同。该值可以使用PreparedStatement。
我在网上看到的所有文档都是用于批量插入/更新/删除的。我从未见过用于select语句的批处理。
能做到吗?如果是这样,请在下面的示例代码时为我提供帮助。
我想可以使用“ IN”子句完成此操作,但我更喜欢使用批处理选择语句。
样例代码:
公共无效运行(连接db_conn,列表value_list){
字符串sql =“ SELECT * FROM DATA_TABLE WHERE ATTR =?”;
PreparedStatement pstmt = db_conn.prepareStatement(sql);
对于(字符串值:value_list){
pstmt.clearParameters();
pstmt.setObject(1,value);
pstmt.addBatch();
}
//我在这里叫什么?
int [] result_array = pstmt.executeBatch()
同时(pstmt.getMoreResults()){
ResultSet result_set = pstmt.getResultSet();
//在这里工作
}
}
我想这可能也取决于驾驶员的行为。我正在使用其JDBC驱动程序针对IBM AS / 400 DB2数据库编写查询。
参见Java教程:
该列表可能包含用于更新,插入或删除行的语句;并且它可能还包含DDL语句,例如CREATE TABLE和DROP
TABLE。但是,它不能包含将产生ResultSet对象的语句,例如SELECT语句。换句话说,列表只能包含产生更新计数的语句。该列表在创建时与Statement对象相关联,最初是空的。您可以使用方法addBatch将SQL命令添加到此列表。
问题内容: 我需要检查(从同一张表)基于日期时间的两个事件之间是否存在关联。 一组数据将包含某些事件的结束日期时间,另一组数据将包含其他事件的开始日期时间。 如果第一个事件在第二个事件之前完成,那么我想将它们链接起来。 到目前为止,我有: 然后我加入他们: 然后,可以基于我的validation_check字段运行带有SELECT嵌套的UPDATE查询吗? 问题答案: 您实际上可以通过以下两种方式
问题内容: 好吧,我是SQL的新手,我刚刚读到,存储过程始终返回一个值,确定该过程中的查询是否已成功执行是一种很好的做法。 所以我有一个带有select语句的简单存储过程,如果要执行,我想返回1,否则返回-1。 您能告诉我如何用SQL编写该条件吗? 如果有关系,我的数据库是MS SQL Server。 谢谢你。 问题答案: 使用输出参数返回成功状态以及Try..Catch块
问题内容: 假设我有一个包含以下各列的表“ shares”: 我想运行等效的SQL语句,如下所示: 我最接近的是: 我在sqlalchemy中设置’sum(quantity)as num’时遇到麻烦。看来我需要使用alias(),但是我无法通过查看文档来弄清楚该怎么做。如果有人可以告诉我该怎么做,我将不胜感激。 非常感谢! 问题答案: 您实际上需要该方法。
问题内容: 谁能指出如何检查选择查询是否返回非空结果集? 例如,我有下一个查询: 我应该像下一个那样做吗: 测试结果集是否不为空? 问题答案: 使用@@ ROWCOUNT: 根据SQL Server联机丛书: 返回受最后一条语句影响的行数。如果行数超过20亿,请使用ROWCOUNT_BIG。
select 数据库查询select($table, $columns, $where) table [string] 表名. columns [string/array] 要查询的字段名. where (optional) [array] 查询的条件.select($table, $join, $columns, $where) table [string] 表名. join [array] 多