使用Statement Execute从Java运行存储过程?

时间:2014-01-22 11:45:55

标签: java sql stored-procedures

我的Java代码

Statement statement = connection.createStatement();
String storedProc = "exec stored_proc(" + someVariable + ")";
statement.execute(storedProc);

但Java会抛出SQLSyntaxException。知道我做错了吗?

1 个答案:

答案 0 :(得分:1)

尝试此查询:

在您目前的方法中,您可以使用:

String storedProc = "{call stored_proc(" + someVariable + ")}";

请注意,我使用的是call而不是exec,并且我用大括号包围了查询。

但要避免sql injection,您可以使用参数化查询,如:

String storedProc="{call stored_proc(?)}";
PreparedStatement pstmt=connection.prepareStatement(storedProc);
pstmt.setString(1,someVariable);
pstmt.execute(storedProc);