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

标签 java sql mysql jdbc

我想在我的 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 中却不行。它在“;”处抛出一个带有语法错误的异常分隔语句。我喜欢这个变量,因为我不必重复查找子句,但如有必要我可以重写它。等效的 JOIN 与 UNION 子句也有点尴尬。

谢谢,

约书亚

最佳答案

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

关于java - 我可以在 JDBC 准备好的查询中使用多个语句吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3366164/

相关文章:

sql - 在sql中存储嵌入代码后,YouTube视频无法在Firefox中播放

mysql - MySQL的使用方法及统计排名

Java Netbeans 在单独的窗口中打开 jFrame 文件选择器

java - 添加 JComboBox 中键入的文本作为此 JComboBox 中的对象

mysql - SQL - 查找列中计数最高的对象

sql - 日期时差得到小时:minutes:seconds

python - Windows 上 mysql-python 安装错误

mysql - 如何在 ruby​​ on Rails 中实现优化 mysql 查询?

java - 如何使用 GridView 打开 Activity 。安卓

java - 将 EditText 带到 Android WebView 的前面