我正在使用 JDBC 中的 prepareStatement 进行查询。我有时会插入一个“数字通配符”而不是实际数字。
考虑这样的查询: Domains: a int, b text;
pStatement =
dbConnection.prepareStatement("SELECT * FROM R1 WHERE a LIKE ? AND b LIKE ?");
有时我想:
pStatement.setInt(1, 10);
pStatement.setString(2,"%");
pStatement.exequteQuery();
这没问题,因为通配符是一个字符串。
其他时候我想:
pStatement.setInt(1, ANY_INT_SHOULD_BE_VALID);
pStatement.setString(2, "Hello");
pStatement.exequteQuery();
那是行不通的。我可以更改查询并使用即“a <> 0”,但这需要额外的代码并且使得使用prepareStatement 有点不必要。
有没有办法在不改变实际查询的情况下解决这个问题,只改变插入的值?