मैं अपनी कई SQL मानचित्र XML फ़ाइलों द्वारा एक अलग फ़ाइल में उपयोग किए गए एसक्यूएल टुकड़े रखना चाहता हूं। फिलहाल, <sql>
इन टुकड़ों के साथ तत्व मैपर में से एक में <select>
जैसे अन्य तत्वों के साथ हैं, जो उन्हें ढूंढना मुश्किल बनाता है।
क्या मेरे पास एक नक्शा है जो कुछ <sql>
तत्वों को परिभाषित करता है और इंटरफ़ेस में कार्यान्वयन उत्पन्न करने के लिए उपयोग नहीं किया जाता है? इस मैपर का सही नामस्थान क्या होगा?
पहले Sql मानचित्र फ़ाइल:MyBatis/iBatis - एक अलग SQL मानचित्र फ़ाइल में पुन: प्रयोज्य एसक्यूएल टुकड़े?
<mapper namespace="com.company.project.dao.???">
<sql id="whereDate">
WHERE date(`time`) BETWEEN #{startDate} AND #{endDate}
</sql>
<sql id="someOtherSqlFragment">
...
</sql>
</mapper>
दूसरा Sql मानचित्र फ़ाइल
<mapper namespace="com.company.project.dao.someDao">
<sql id="whereDate">
WHERE date(`time`) BETWEEN #{startDate} AND #{endDate}
</sql>
<sql id="someOtherSqlFragment">
...
</sql>
<select id="getSomeData"
resultType="SomeClass"
parameterType="DateParam" >
SELECT some_column, another_column
</select>
FROM some_table
<include refid="whereDate"/>
<include refid="otherSqlFragment"/>
</select>
</mapper>
मैं इस तरह के तत्वों को अलग करना चाहते हैं:
यह framents साथ एसक्यूएल मानचित्र फ़ाइल है :
<mapper namespace="com.company.project.dao.someDao">
<select id="getSomeData"
resultType="SomeClass"
parameterType="DateParam" >
SELECT some_column, another_column
</select>
FROM some_table
<include refid="whereDate"/>
<include refid="otherSqlFragment"/>
</select>
</mapper>
धन्यवाद हो सकता है! मैंने यह भी देखा कि मै मैपैटिस-स्प्रिंग से मैपरफैक्टरीबीन क्लास का उपयोग अन्य एसक्यूएल मैप फाइलों को "लोड" करने के लिए कर रहा हूं। सामान्य टुकड़ों वाली फ़ाइल कहीं भी "लोड नहीं" थी, इसलिए मुझे इसे मैन्युअल रूप से mybatis कॉन्फ़िगरेशन फ़ाइल में जोड़ना पड़ा। – prasopes
यदि कोर मैपर फ़ाइल आपकी mybatis कॉन्फ़िगरेशन फ़ाइल में एकमात्र चीज है, तो सामान्य मैपर फ़ाइल लोड करने के लिए SqlSessionFactoryBean में 'मैपर लेक्शंस' प्रॉपर्टी का उपयोग करने के लिए और अधिक समझ हो सकती है। – AngerClown
यदि आप MyBatis का उपयोग कर रहे हैं, तो "मैपर" के साथ "sqlMap" को प्रतिस्थापित करें। http://code.google.com/p/mybatis/wiki/DocUpgrade3 देखें। मैंने स्पष्ट रूप से उपर्युक्त समाधान का पालन किया और अन्य मुद्दों में भाग गया। तब मुझे एहसास हुआ कि मैं MyBatis का उपयोग कर रहा हूं और sqlMap के बजाय मैपर का उपयोग करना है। – Srikanth