【发布时间】:2015-08-22 12:28:30
【问题描述】:
我正在使用PreparedStatement 从表中选择记录:
public static String getMemberInfo(String columnName, Integer memberId) {
String memberInfo = "";
String sql = "SELECT ? FROM member WHERE member_id = ?";
DatabaseConnector.setConn();
try(Connection conn = DatabaseConnector.getConn();
PreparedStatement ps = conn.prepareStatement(sql)) {
ps.setString(1, columnName);
ps.setInt(2, memberId);
try(ResultSet rs = ps.executeQuery()) {
if(rs.next()) {
memberInfo = rs.getString(columnName);
}
}
} catch(SQLException se) {
se.printStackTrace();
}
return memberInfo;
}
当我使用
SELECT " + columnName + " FROM member WHERE member_id = ?,有效。
但是当我使用
SELECT ? FROM member WHERE member_id = ?,没有。
? 应该放在准备好的语句中的什么位置?
【问题讨论】:
-
?用于输入值。 (即未选择的列。)
-
@jarlh 你应该把它作为答案
-
@MauricioTrajano,完成!
标签: java mysql sql jdbc prepared-statement