मैं एक एसक्यूएल एक MyBatis नक्शाकार फ़ाइल में लिखा जो कुछ इस तरह है:पहुँच सार्वजनिक स्थिर अंतिम स्ट्रिंग
<select id="somesql">
select a,b,c from tbl_name where d = ?
</select>
d
के लिए प्लेसहोल्डर मूल्य स्थिर में घोषित किया जाना माना जाता है एक फ़ाइल Constants.java
के रूप में कहा:
public static final String d = "d_value";
कैसे मैं वास्तव में <select>
निर्माण में एक पैरामीटर गुजर बिना मूल्य के साथ प्लेसहोल्डर बदलूं? मैंने #{com.pkg.name.Constants.d}
की कोशिश की लेकिन यह काम नहीं किया।
कोई हार्ड कोडिंग !!!
वास्तव में, यह काम करता है !! लेकिन ध्यान दें कि मान "जैसा है" चिपकाया गया है, कोई भाग नहीं रहा है, कोई उद्धरण नहीं है। तो यदि आप इसे संख्याओं के लिए उपयोग नहीं करते हैं, तो आपको कम से कम उद्धरण जोड़ना होगा। –
असल में हम किसी भी पास पैरामीटर को मैपर्स में बदल रहे हैं, इस तथ्य को छोड़कर, हम केवल स्टेटिक फाइनल स्थिरांक का उपयोग नहीं करते हैं, बल्कि आप कुछ स्थिर विधि को सीधे कॉल कर सकते हैं: ${@foo.product.constant.StoreType @getWhereClausule()} – kensai