บรรณาธิการจะแบ่งปันโซลูชันสามแบบเพื่อแก้ปัญหาของ mybatis ผ่านพารามิเตอร์หลายตัว การแนะนำเฉพาะมีดังนี้:
ทางออกแรก
วิธีการทำงานของชั้น Dao
ผู้ใช้สาธารณะ SelectUser (ชื่อสตริงพื้นที่สตริง);
mapper.xml ที่สอดคล้องกัน
<select id = "selectuser" resultmap = "baseresultmap"> เลือก * จาก user_user_t โดยที่ user_name = #{0} และ user_area = #{1} </select>ในหมู่พวกเขา #{0} หมายถึงพารามิเตอร์แรกในเลเยอร์ DAO และ #{1} หมายถึงพารามิเตอร์ที่สองในเลเยอร์ DAO และสามารถเพิ่มพารามิเตอร์เพิ่มเติมได้อย่างต่อเนื่อง
ทางออกที่สอง
วิธีนี้ใช้ MAP เพื่อผ่านพารามิเตอร์หลายตัว
วิธีการฟังก์ชันของเลเยอร์ Dao
ผู้ใช้สาธารณะ SelectUser (แผนที่ parammap);
mapper.xml ที่สอดคล้องกัน
<select id = "selectuser" resultmap = "baseresultmap"> เลือก * จาก user_user_t โดยที่ user_name = #{ชื่อผู้ใช้, jdbctype = varchar} และ user_area = #{userarea, jdbctype = varchar}บริการเลเยอร์บริการ
ผู้ใช้ส่วนตัว XXXSELECTUSER () {MAP PARAMMAP = ใหม่ HASHMAP (); parammap.put ("ชื่อผู้ใช้", "สอดคล้องกับค่าพารามิเตอร์ที่เฉพาะเจาะจง"); parammap.put ("userarea", "สอดคล้องกับค่าพารามิเตอร์เฉพาะ") ผู้ใช้ = xxx SelectUser (parammap);}โดยส่วนตัวแล้วฉันคิดว่าวิธีนี้ไม่ง่ายพอและเมื่อคุณเห็นวิธีการอินเตอร์เฟสคุณไม่สามารถรู้ได้โดยตรงว่าพารามิเตอร์จะผ่านอะไร
ทางออกที่สาม
วิธีการฟังก์ชันของเลเยอร์ Dao
ผู้ใช้สาธารณะ SelectUser (@Param ("ชื่อผู้ใช้") StringName,@param ("userarea") พื้นที่สตริง);mapper.xml ที่สอดคล้องกัน
<select id = "selectuser" resultmap = "baseresultmap"> เลือก * จาก user_user_t โดยที่ user_name = #{ชื่อผู้ใช้, jdbctype = varchar} และ user_area = #{userarea, jdbctype = varchar}โดยส่วนตัวแล้วฉันคิดว่าวิธีนี้ดีกว่าและช่วยให้นักพัฒนารู้ว่าพารามิเตอร์ใดที่จะผ่านเมื่อพวกเขาเห็นวิธี Dao Layer มันใช้งานง่ายกว่า ฉันแนะนำวิธีแก้ปัญหานี้เป็นการส่วนตัว
ด้านบนเป็นวิธีแก้ปัญหา MyBatis ผ่านพารามิเตอร์หลายตัวที่แนะนำโดยตัวแก้ไข ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน!