Ich habe eine SQL in einer Mybatis Mapper-Datei geschrieben, die so etwas wie diese:Zugang public static final String in Mybatis SQL in Mapper Dateien
<select id="somesql">
select a,b,c from tbl_name where d = ?
</select>
Der Platzhalter Wert für d
sollte eine Konstante deklariert wird in eine Datei Constants.java
wie genannt:
public static final String d = "d_value";
wie ersetze ich den Platzhalter mit dem Wert, ohne tatsächlich einen Parameter in dem <select>
Konstrukt vorbei? Ich habe versucht, #{com.pkg.name.Constants.d}
, aber es hat nicht funktioniert.
Keine harte Codierung !!!
Eigentlich funktioniert das !! Beachten Sie jedoch, dass der Wert "so wie er ist" eingefügt wird, kein Escaping, keine Anführungszeichen. Wenn Sie es also nicht für Zahlen verwenden, müssen Sie zumindest Anführungszeichen hinzufügen. –
Tatsächlich ersetzen wir dadurch alle übergebenen Parameter in Mappern, abgesehen von der Tatsache, dass wir nicht nur STATIC FINAL-Konstanten verwenden, sondern auch einige statische Methoden direkt aufrufen können: ${@foo.product.constant.StoreType @getWhereClausule()} – kensai