当前位置: 首页 > 面试题库 >

我可以在JDBC准备的查询中使用多个语句吗?

蔡弘扬
2023-03-14
问题内容

我想在我的MySQL服务器上执行以下操作:

SET @id=(SELECT id FROM lookupTable WHERE field=?);
(SELECT * FROM table2 WHERE id=@id)
UNION
(SELECT * FROM table3 WHERE id=@id)
UNION
(SELECT * FROM table4 WHERE id=@id);

这在控制台上工作正常,但在我的Java
PreparedStatement中却无法正常工作。它在’;’处引发带有语法错误的异常。分离语句。我喜欢该变量,因为我不必重复查找子句,但是如有必要,我可以重写它。与UNION子句相对应的JOIN也有点尴尬。

谢谢,

约书亚记


问题答案:

JDBC从未支持解析定界查询。每次调用都是一次数据库访问。也许您可以实现对每个单独的查询执行PreparedStatement.addBatch(),然后执行和检索两个结果集的意图?



 类似资料:
  • 问题内容: 我想知道我是否可以准备一个执行多个查询的mysqli语句: 这样就会出错:在…中的非对象上调用成员函数bind_param() 问题答案: 一个准备好的语句只能执行一个MySQL查询。您可以在不同的变量中准备任意数量的语句: 然后再执行它们。如果您想确保除非一个都能够运行,否则任何一个都不会运行,那么您需要像Thomas所说的那样研究事务。 另外,一个一般性的提示:“在非对象上调用成员

  • 我有一个类,其中我使用旧的jdbc方法创建了到h2数据库的连接,该方法编写url并获取连接,我在数据库中创建了一个表,这个表不是java对象,所以我用尽了聪明的方法来为我的方法编写测试 //我还创建了一个表app_user公共void addUser(连接连接,字符串登录,字符串密码,字符串描述)抛出SQLException{ 而我的测试方法看起来像这样,有没有办法让它不那么整洁,更简单,我试图用

  • 我们有一个db2 database V9.7FP1 出现此错误消息的可能原因是什么?

  • 本文向大家介绍我们可以在MySQL查询中使用SELECT NULL语句吗?,包括了我们可以在MySQL查询中使用SELECT NULL语句吗?的使用技巧和注意事项,需要的朋友参考一下 是的,我们可以在MySQL查询中使用SELECT NULL语句。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是实现SELECT NULL

  • 我有一个遗留代码,不允许使用预先准备好的语句。它使用Spring JDBC和更新查询。要求更新100000行。我有一张地图,上面有行号和需要在特定列中更新的值。 下面是我的当前代码: 我需要将其更改为批量执行,以便在for循环之后,我可以在一次DB命中中执行它。 对于这个需求,使用spring JDBC批处理更新的最佳方式是什么?