【发布时间】:2021-12-23 06:04:21
【问题描述】:
select group_id,group_name,directory_id from csr_dim_group where group_name IN ('RG-Actuary SecShared Best's Week') and directory_id=?
PreparedStatement statement = getStatement(sql);
statement.setLong(1, dirId);
rs = statement.executeQuery();
获取SQLServerException。你能帮我如何在preparedStatement中转义单引号吗?
2021-11-10 21:32:02,892 错误 [com.mcafee.mesa.reportdbin.util.UpdateDirectoryDbUtil] SQL 异常 在获取目录组期间: com.microsoft.sqlserver.jdbc.SQLServerException:索引 1 超出 范围。 在 com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:234) 在 com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setterGetParam(SQLServerPreparedStatement.java:1115) 在 com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setValue(SQLServerPreparedStatement.java:1129) 在 com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setLong(SQLServerPreparedStatement.java:1429) 在 org.apache.commons.dbcp.DelegatingPreparedStatement.setLong(DelegatingPreparedStatement.java:123) 在 org.apache.commons.dbcp.DelegatingPreparedStatement.setLong(DelegatingPreparedStatement.java:123) 在 com.mcafee.mesa.reportdbin.util.UpdateDirectoryDbUtil.getDirectoryGroups(UpdateDirectoryDbUtil.java:197) 在 com.mcafee.mesa.server.project.services.directory.UpdateDirectoryHelper.updateDirectoryGroup(UpdateDirectoryHelper.java:584)
【问题讨论】:
-
请edit 你的问题表明你是如何在
sql和dirId中输入值的。 -
这与你使用
PreparedStatement无关。当 SQL 字符串文字中有单引号时,无论您如何执行语句,都必须对其进行转义。