ho uno SQL scritto in un file mapper MyBatis che è qualcosa di simile:accesso stringa finale public static in mybatis SQL in file mapper
<select id="somesql">
select a,b,c from tbl_name where d = ?
</select>
si suppone che il valore segnaposto per d
ad essere una costante dichiarata in un file denominato come Constants.java
:
public static final String d = "d_value";
come si sostituisce il segnaposto con il valore senza effettivamente passare un parametro nella costrutto <select>
? Ho provato #{com.pkg.name.Constants.d}
ma non ha funzionato.
No hard coding !!!
In realtà, questo funziona !! Ma nota che il valore è incollato "così com'è", nessuna escaping, nessuna virgoletta. Quindi se non lo usi per i numeri, devi almeno aggiungere delle virgolette. –
In realtà stiamo sostituendo qualsiasi parametro passato in mapper con questo, tranne il fatto, non usiamo solo costanti STATIC FINAL, ma puoi anche chiamare direttamente un metodo statico, come questo: ${@foo.product.constant.StoreType @getWhereClausule()} – kensai