如何在准备好的语句中设置连接的字符串参数

how to set concatenated string parameter in preparedstatement

我有以下 java 代码:

1- String sql="select * from mytable where params='file_name=?,report_name=?'"
2- stmt.setString(1, fileName);
3- stmt.setString(2, reportName);

我在代码行 3 中遇到以下异常:

Invalid column index

我做错了什么?如何正确设置参数?

从字符串文字中取出绑定参数:

String sql="select * from mytable where params='file_name=' || ? || ',report_name=' || ?"

或者,创建单个绑定参数并传入连接值:

String sql="select * from mytable where params=?"
stmt.setString(1, "file_name=" + fileName + ",report_name=" + reportName);