MyBatisのSelectステートメントにStringパラメーターを使用したい。私のmapper.xml:
<select id="selectAll" parameterType="String" resultMap="fastXMLResultMap">
SELECT CREATIONDATE, DOCUMENTID, TITEL, REGTITEL, INFORCEDATE, DOCTYPE
FROM #{databBaseTable}
</select>
そして、呼び出し元の関数:
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();
}
}
文字列dataBaseTableは、さまざまなテーブルから動的にデータを取得したいので、データベースのテーブルの名前です(誰がそう思ったでしょう)。
ただし、残念ながら、これは機能しません。エラー:ORA-00903:UngültigerTabellenname(無効なテーブル名)ですが、機能しません。「databBaseTable」の値を出力すると、それはテーブルの正確な名前です。そして、変数なしでテーブルの名前をmapper.xmlに書き込むと、機能します。私は何を間違えますか?