MyBatis String als Parameter
Ich möchte einen String-Parameter für eine Select-Anweisung in MyBatis verwenden. Meine mapper.xml:
<select id="selectAll" parameterType="String" resultMap="fastXMLResultMap">
SELECT CREATIONDATE, DOCUMENTID, TITEL, REGTITEL, INFORCEDATE, DOCTYPE
FROM #{databBaseTable}
</select>
Und die aufrufende Funktion:
public List<FastXMLObject> selectAll(String databBaseTable) {
SqlSession session = sqlSessionFactory.openSession();
System.out.println("Table: "+databBaseTable);
try {
List<FastXMLObject> list = session.selectList("FastXMLObject.selectAll",databBaseTable);
return list;
} finally {
session.close();
}
}
Die Zeichenfolge dataBaseTable ist der Name der Tabelle meiner Datenbank (wer hätte das gedacht), da ich Daten dynamisch aus verschiedenen Tabellen abrufen möchte.
Leider funktioniert dies nicht: Fehler: ORA-00903: Ungültiger Tabellenname (ungültiger Tabellenname), aber nicht. Wenn ich den Wert von "databBaseTable" ausdrucke, ist dies der genaue Name der Tabelle. Und wenn ich den Namen der Tabelle ohne Variable in meine mapper.xml schreibe, funktioniert es. Was mache ich falsch?