我JDBC
用于连接到 Servlets 中的数据库(Oracle10)。
以下是我想要动态设置三个参数的查询。
- 表名
- 列名
- 价值
询问:
query = "select ? from ? where ? = ?";
mypstmt = con.prepareStatement(query);
mypstmt.setString(1, tableName);
mypstmt.setString(2, columnName);
mypstmt.setString(3, columnName2);
mypstmt.setString(4, value);
但上面的查询给了我错误:
java.sql.SQLException: ORA-00903: invalid table name
我检查了表名。这是正确的,如果我这样写查询:
query = "select "+columnName+" from "+tableName+" where "+columnName2+" = ?";
然后它执行得很好。
那么如果我想将Table name
and设置Column Names
为mypstmt.setString(1,tableName)
Edit1
我想要 and 的原因是parameterize
我允许用户选择/输入表名和列名,所以我想避免.Table name
Column name
SQL Injection