Verwendung des dynamischen Tabellennamens in SELECT-Abfragen mit JDBC
Ich habe 5 oder Tabelle Tabelle zum Abfragen von \ Meine Syntax gefällt mir
Das Problem ist, wenn ich dies ausführe, bekomme ich eine Fehlermeldung "..... Sie haben einen Fehler in der SQL-Syntax in der Nähe von? WHERE Patient_ID =?"
String sql2 = "SELECT * FROM ? WHERE Patient_ID = ?";
pst = conn.prepareStatement(sql2);
System.out.println("SQL before values are set "+sql2);
System.out.println("The values of table/test name recieved in TestPrint stage 1 "+tblName);
System.out.println("The values of test name recieved in TestPrint stage 1 "+key);
// values are outputted correctly but are not getting set in the query
pst.setString(1, tblName);
pst.setLong(2, key);
ResultSet rs2 = pst.executeQuery(sql2);
while(rs2.next()){
String ID = rs2.getString("ID");
jLabel35.setText(ID);
jLabel37.setText(ID);
jLabel38.setText(ID);
// them print command is initiated to print the panel
}
Wenn ich die SQL mit system.out.println (sql2) ausgeben;
Werte werden in sql2 nicht festgelegt
MySQL-Platzhalter können nur WERTE ersetzen. Sie können keine Platzhalter für Tabellen- / Feldnamen oder andere SQL- "Meta" -Anweisungen verwenden. z.B.