H5W3
当前位置:H5W3 > 其他技术问题 > 正文

jdbc中无法识别sql语句中的变量

需求:
有一张表记录人员的信息,现在想求人员年龄的中位数,采用的方法为:
先将表中的年龄排序并且给排序后的年龄加上行序返回一个中间表,然后再查这个中间表,返回行号为中间值的年龄的平均值。
SQL代码如下;

set @rowindex = 0;
select avg(temp2.age) from 
(select @rowindex:=@rowindex + 1 as rawindex,student.age as age from student order
by student.age) AS temp2 where temp2.rawindex IN (FLOOR((@rowindex+1) / 2) ,
CEIL((@rowindex+1) / 2));

问题:
这段sql语句中因为含有sql变量@rowindex,用来记录行序,但其在mysql中能正确返回结果,但在java代码里报错,提示语法错误,希望各位码友指教,如何解决?
1.sql中执行的正确结果(17行红叉不影响,因为是17行上面的sql导致的)

clipboard.png
2.java中的代码以及报错:

clipboard.png

JDBC连接Mysql的驱动mysql-connector用的最新的

clipboard.png

回答:

你这实际上是多条SQL语句,默认无法一次性执行多条SQL语句,但好像可以修改jdbc连接设置,具体请度娘。

本文地址:H5W3 » jdbc中无法识别sql语句中的变量

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址