iBATISのFAQ2
LIKE句を使うには(iBATIS FAQの意訳)
iBATISのMapはPreparedStatementを使用するので、$VALUE$に「%」か「_」を含ませなければなりません。例えば、
select * from foo where value like '青%'
を実行したい場合、
select * from foo where value like #parm#
と書くと
select * from foo where value like ?
となります。そのためparmというパラメタに「青%」を設定する必要があります。しかし、このアプローチが好きでないなら、代わりにこの方法が利用できます。
select * from foo where value like '$parm$%'
この場合もPreparedStatementを使用しますが、$parm$にはそのまま変数が挿入されます。したがって同じ結果を得るためには「青」をparmを設定すれば良いでしょう。なおシングルクォーテションが確実にエスケープされるようにしてSQLインジェクション攻撃に注意してください。