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

Jos*_*ell 10 java mysql sql 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);
Run Code Online (Sandbox Code Playgroud)

这可以在控制台上正常工作,但不能从我的Java PreparedStatement中工作.它会在';'处引发语法错误的异常 分开陈述.我喜欢变量因为我不必重复查找子句,但如果有必要我可以重写它.对于UNION条款,等效的JOIN也有点尴尬.

谢谢,

约书亚

ddi*_*rov 5

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