คำนำ
มีแอตทริบิวต์พารามิเตอร์ในตัวเลือกแทรกการอัปเดตและลบองค์ประกอบในไฟล์ mybatis mapper ซึ่งใช้สำหรับประเภทพารามิเตอร์ที่สอดคล้องกันที่ยอมรับโดยวิธีการแม็กเปอร์อินเตอร์เฟส บทความนี้ส่วนใหญ่แนะนำเนื้อหาที่เกี่ยวข้องเกี่ยวกับประเภทพารามิเตอร์พารามิเตอร์ใน mybatis มันถูกแบ่งปันสำหรับการอ้างอิงและการเรียนรู้ของคุณ ฉันจะไม่พูดด้านล่างมากนัก มาดูการแนะนำรายละเอียดร่วมกันกันเถอะ
1. ประเภทพารามิเตอร์ของ mybatis แบ่งออกเป็นสองประเภท
1. 1. ประเภทข้อมูลพื้นฐาน: int, สตริง, ยาว, วันที่;
1. 2. ประเภทข้อมูลที่ซับซ้อน: คลาสและแผนที่
2. วิธีรับค่าในพารามิเตอร์:
2.1 ประเภทข้อมูลพื้นฐาน: #{พารามิเตอร์} รับค่าในพารามิเตอร์
2.2 ประเภทข้อมูลที่ซับซ้อน: #{ชื่อแอตทริบิวต์}, #{key} ในแผนที่
3. กรณี:
3.1 กรณีชนิดข้อมูลพื้นฐาน
<sql id = "base_column_list"> id, car_dept_name, car_maker_name, ไอคอน, car_maker_py, hot_type < /sql> <select id = "SelectByPrimaryKey" redceDmap = "baseresultMap" Common_car_make โดยที่ id = #{id, jdbcType = bigint} </select>3.2 ประเภทแผนที่ที่ซับซ้อน
<select id = "queryCarmakerList" resultmap = "baseresultmap" parameterType = "java.util.map"> เลือก <รวม refid = "base_column_list" /> จาก common_car_make cm โดยที่ 1 = 1 <ถ้าทดสอบ = "id! = null" test = "cardeptName! = null"> และ cm.car_dept_name = #{cardeptname, jdbctype = varchar} </ถ้า> <ถ้า test = "carmakerName! = null"> และ cm.car_maker_name = #{carmakername cm.hot_type = #{hotType, jdbcType = bigint} </if> สั่งซื้อโดย cm.id </select>3.3 ประเภทประเภทที่ซับซ้อน
<update id = "UpdateByPrimaryKeySelective" parameterType = "com.epeit.api.model.CommonCarmake"> อัปเดต Common_car_make <et> <ถ้า test = "cardeptName! = null"> car_dept_name = #{cardeptname car_maker_name = #{carmakerName, jdbctype = varchar}, </if> <ถ้า test = "icon! = null"> icon = #{icon, jdbcType = varchar}, </if> <if test = "Carmakerpy! #{carmakerpy, jdbctype = varchar}, </if> <ถ้า test = "hotType! = null"> hot_type = #{hotType, jdbcType = bigint}, </if> </set> ที่ id = #{id, jdbctype = bigint3.4 ประเภทที่ซับซ้อน-กรณีที่มีอาร์เรย์รวมอยู่ในแผนที่
<select id = "selectProOrderByOrderId" resultType = "com.epeit.api.model.proorder" parameterType = "java.util.hashmap"> เลือกผลรวม (pro_order_num) proordernum, product_id productid, promotion_id promotionid จาก pro_order item = "item" open = "order_id in (" separator = "," close = ")"> #{item, jdbctype = bigint} </foreach> </if> กลุ่มโดย product_id, promotion_id </select>4. คำอธิบายประกอบ @Param: นี่เป็นเรื่องพิเศษ แต่ก็เข้าใจง่าย
กรณีที่ 1:
@Param(value="startdate") String startDate : หมายเหตุประกอบคุณสมบัติเดียว; สิ่งนี้คล้ายกับการเปลี่ยนชื่อพารามิเตอร์หนึ่งครั้ง
ตัวอย่างเช่นกำหนดค่าคำสั่ง SQL (เลเยอร์ dao) ใน *mapper.xml โทร mybatis
รายการ <String> SelectIdBySortTime (@Param (value = "startDate") startDate);
จากนั้นคำสั่งใน XML จะต้องจับคู่กับเนื้อหาใน @param brackets: พารามิเตอร์ startdate
<select id = "SelectIdBySortTime" resultType = "java.lang.string" parameterType = "java.lang.string"> เลือก Ajlcid ที่แตกต่างจาก ebd_fh_ajlc ที่ sorttime> = to_date (#{startDate, jdBctype = varchar KeyValue in (เลือกชื่อ บริษัท ที่แตกต่างจาก EBD_FH_COMPANY_LIST โดยที่ isUpdate = '0') </Select> กรณีที่ 2:
คำอธิบายประกอบ javabean,@param (value = "datevo") Datevo Datevo; คุณต้องให้ความสนใจกับพารามิเตอร์ที่เป็นลายลักษณ์อักษร
รายการ <String> SELECTIDS (@Param (value = "DateVo") DateVo DateVo);
ไฟล์การแมปที่สอดคล้องกัน
<select id = "selectIds" resultType = "java.lang.string" parameterType = "com.api.entity.datevo"> เลือก Ajlcid ที่แตกต่างจาก ebd_fh_ajlc ที่ sorttime> = to_date (# {datevo.startdate createD_date = updated_date และ keyValue ใน (เลือกชื่อ บริษัท ที่แตกต่างจาก EBD_FH_COMPANY_LIST โดยที่ isUpdate = '0') </เลือก>สำหรับข้อดีและข้อเสียนั้นขึ้นอยู่กับความชอบส่วนตัวของคุณ
สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่าเนื้อหาของบทความนี้จะมีค่าอ้างอิงบางอย่างสำหรับการศึกษาหรือที่ทำงานของทุกคน หากคุณมีคำถามใด ๆ คุณสามารถฝากข้อความไว้เพื่อสื่อสาร ขอบคุณสำหรับการสนับสนุน Wulin.com