在PreparedStatements中使用列名作为输入参数
问题:
列名可以用作PreparedStatement 查询中的输入参数,例如“SELECT * FROM A,B WHERE A.X = ?”并为 B.Y 赋值作为参数?
答案:
不,JDBC 不允许使用列名作为输入参数。 ReadyStatement 只接受列值作为参数。要动态修改SQL语句,必须在创建PreparedStatement之前完成。
使用提供的示例:
Table A has Attribute X + others Table B has Attribute Y + others
PreparedStatement可以构造如下:
String sql = "SELECT * FROM A, B WHERE A.X = ?"; PreparedStatement statement = connection.prepareStatement(sql); statement.setString(1, "value for A.X");
但是,无法将参数动态设置为“B.Y”,因为它是列名称。
以上是列名可以用作PreparedStatements中的输入参数吗?的详细内容。更多信息请关注PHP中文网其他相关文章!