SQL查询工作在MySQL,但没有在Java中

问题描述:

我有以下查询(它实际上更复杂,但只是用于此目的的一个基本的)SQL查询工作在MySQL,但没有在Java中

"DECLARE @x1 FLOAT; SET @x1 = 8; Select @x1" 

直接与MySQL数据库工作正常,但是当我使用它在Java中像这样:

String sqlFormula = "DECLARE @x1 FLOAT; SET @x1 = 8; Select @x1"; 

我送以同样的方式我做的其他工作,这很好,但是这是给我的SQL语法错误此查询。 java是否需要使用不同格式的变量声明?

的错误是:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE @x1 FLOAT; SET @x1 = 8; Select @x1' at line 1

这并不能真正帮助,因为它指的是整条生产线。

添加开始和结束的字符串:

String sqlFormula = "BEGIN DECLARE @x1 FLOAT; SET @x1 = 8; Select @x1 END"; 

在这一过程的开始位是不错,但它似乎末尾添加的语句。错误报告语法错误:

'DECLARE @x1 FLOAT; SET @x1 = 8; Select @x1 END' at line 1

谢谢。

+1

*“和我做别人一样”*那是怎么回事? --- *“给我SQL语法错误”*告诉我们错误。 – Andreas

+0

标记时请小心。 mysql sql服务器。 –

+0

@Andreas我上面编辑显示错误。 – MXG123

事实证明,语法没有错,它是一个查询中的多个语句,它不喜欢。我个别实施了它们,并且工作。它不是理想的,但现在会做,直到我稍后创建一个准备好的声明。

+0

查看连接属性['allowMultiQueries'](https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-configuration-properties.html):*允许使用'; “在一个语句中(true/false)分隔多个查询,默认为'false'。* – Andreas

+0

是的。已经做到了。连接时附加“?allowMultiQueries = TRUE”到数据库。结果没有什么不同。 – MXG123