ความนิยมอย่างรวดเร็ว
1. mybatis คืออะไร
MyBatis เป็นเฟรมเวิร์กเลเยอร์การคงอยู่ที่ยอดเยี่ยมที่รองรับการสืบค้น SQL แบบธรรมดาขั้นตอนที่เก็บไว้และการทำแผนที่ขั้นสูง
MyBatis กำจัดการตั้งค่าด้วยตนเองของรหัส JDBC เกือบทั้งหมดและพารามิเตอร์และการค้นหาการห่อหุ้มของชุดผลลัพธ์ MyBatis สามารถใช้ XML อย่างง่ายหรือคำอธิบายประกอบสำหรับการกำหนดค่าและการแมปดั้งเดิมการแมปอินเทอร์เฟซและ pojos ของ Java (วัตถุ Java เก่าธรรมดา) ลงในบันทึกในฐานข้อมูล
MyBatis ใช้การเชื่อมต่อส่วนต่อประสานทำให้สะดวกในการใช้งานมากขึ้น
ปรับปรุงการทำแผนที่ความสัมพันธ์ของวัตถุมีประสิทธิภาพมากขึ้น
MyBatis ใช้การแสดงออกที่ใช้ OGNL ที่ทรงพลังเพื่อกำจัดองค์ประกอบอื่น ๆ
2. สถาปัตยกรรมการทำงาน
3. กระบวนการดำเนินการ
คำอธิบายโดยละเอียดเกี่ยวกับหลักการ:
แอปพลิเคชัน MyBatis สร้าง SQLSessionFactory ตามไฟล์การกำหนดค่า XML การกำหนดค่ามาจากสองสถานที่ตามการกำหนดค่าหนึ่งคือไฟล์การกำหนดค่าและอื่น ๆ คือคำอธิบายประกอบของรหัส Java และได้รับ SQLSession SQLSession มีวิธีการทั้งหมดที่จำเป็นในการดำเนินการ SQL คุณสามารถเรียกใช้คำสั่ง SQL ที่แมปได้โดยตรงผ่านอินสแตนซ์ SQLSession เพื่อเติมข้อมูลการลบการแก้ไขและการสืบค้นการส่งธุรกรรม ฯลฯ และปิด SQLSession หลังการใช้งาน
ลองมาดูประเด็นสำคัญของบทความนี้ mybatis คำอธิบายประกอบง่ายๆ
คำอธิบายหมายเหตุสำคัญ:
@Insert: แทรก SQL ไวยากรณ์เหมือนกับ XML แทรก SQL
@Select: Query SQL และไวยากรณ์เหมือนกับ XML SELECT SQL
@UpDate: อัปเดต SQL และไวยากรณ์ของ XML Update SQL เหมือนกันทุกประการ
@Delete: ลบ SQL และไวยากรณ์เหมือนกับ XML DELETE SQL
@Param: เข้าสู่โสม
@Results: คอลเลกชันผลลัพธ์
@Result: ผลลัพธ์
1. โมเดลโดเมน:
คลาสสาธารณะ userdo {Private Long ID; String Private String ชื่อผู้ใช้; วันที่ส่วนตัว gmtcreate; วันที่ส่วนตัว gmtmodified; public long getid () {return id;} โมฆะสาธารณะ setId (id ยาว) {this.id = id;} public String getUserName () {return username; getGmtCreate () {return gmtCreate;} โมฆะสาธารณะ setgmtCreate (วันที่ gmtcreate) {this.gmtcreate = gmtcreate;} วันที่สาธารณะ getgmtmodified () {return gmtmodified;} gmtmodified;}}2. คำจำกัดความอินเตอร์เฟส:
อินเทอร์เฟซสาธารณะ userdao {@insert ("แทรกลงใน t_user (gmt_create, gmt_modified, user_name) ค่า (ตอนนี้ (), ตอนนี้ (), #{ชื่อผู้ใช้})") การแทรก int สาธารณะ (@param ("ชื่อผู้ใช้") @select ("เลือก * จาก t_user โดยที่ id = #{id}") public userdo selectByUserId (@param ("id") id ยาว); @update ("อัปเดต t_user set gmt_modified = ตอนนี้ () user_name = #{username} @param ("id") id ยาว); @delete ("ลบจาก t_user โดยที่ id = #{id}") สาธารณะ int udpateById (@param ("id") Long ID); -3. mybatis xml config:
<!-คำอธิบายประกอบ myBatis-> <bean id = "sqlsessionfactory"> <ชื่อคุณสมบัติ = "dataSource" ref = "mysqlbase" /> <!-ที่นี่คุณต้องกำหนดค่าแหล่งข้อมูลของคุณเอง <!-MyBatis Interface-> <property name = "SQLSessionFactory" ref = "SQLSessionFactory" /> <!-SQLSession Factory-> </ebean>
ด้วยวิธีนี้เราทำการสาธิต mybatis โดยใช้คำอธิบายประกอบ มันไม่ง่ายมากเหรอ?
หากคุณคุ้นเคยกับ MyBatis XML ในกรณีส่วนใหญ่เราจำเป็นต้องแมปชื่อฟิลด์ของตารางฐานข้อมูลไปยังชั้นเรียน MyBatis Annotation ยังมีฟังก์ชั่นการแมปและไวยากรณ์ก็คล้ายกัน
@Select ("เลือก * จาก tsp_template โดยที่ id = #{id}")@results (value = {@Result (property = "ชื่อผู้ใช้", คอลัมน์ = "user_name", javatype = string.class, jdbctype = jdbctype.varchar)แน่นอนว่าข้างต้นเป็นเพียงว่า SQL ไม่สามารถเรียบง่ายได้อีกต่อไป ลองคิดดูถ้าเรามีข้อกำหนดนี้เราจะอัปเดตข้อมูลผู้ใช้และหวังว่าจะอัปเดตค่าแอตทริบิวต์ที่ระบุ กล่าวอีกนัยหนึ่งเราสร้าง SQL แบบไดนามิกเหมือน XML จากนั้นเราไม่สามารถใช้คำอธิบายประกอบ @update ได้อย่างง่ายดายและคร่าวๆ โชคดีที่ mybatis ที่ทรงพลังยังให้การประกอบ SQL แบบไดนามิก
SQL แบบไดนามิก
ความสัมพันธ์ที่สอดคล้องกันมีดังนี้
@Insert: @insertProvider
@Select: @SelectProvider
@UpDate: @UpDateProvider
@Delete: @DeleteProvider
ตัวระบุคำอธิบายประกอบผู้ให้บริการสี่ตัวใช้ SQL แบบไดนามิกและใช้รูปแบบไวยากรณ์:
@UpDateProvider (type = userProvider.class, method = "updateSql")
วิธีสร้าง SQL แบบไดนามิก
คลาสสาธารณะ UserProvider {/*** udpate* @param userdo userdo* @return*/public String updateSql (Userdo final userdo) {ส่งคืน sql ใหม่ () {update ("t_user"); set ("gmt_modified = now (); #{ชื่อผู้ใช้} ");} โดยที่ (" id = #{id}} ");}}. toString ();}}คะแนนความรู้ที่กล่าวถึงในบทความนี้ค่อนข้างพื้นฐาน หากคุณต้องการมีความเข้าใจในเชิงลึกโปรดดูเอกสารเว็บไซต์อย่างเป็นทางการหรืออ่านซอร์สโค้ด
สรุป:
1. จะเลือก XML และคำอธิบายประกอบได้อย่างไร? มันแตกต่างกันไปในแต่ละบุคคล ทุกคนมีนิสัยการเขียนโค้ดของตัวเอง XML และคำอธิบายประกอบมีข้อได้เปรียบและข้อเสียของตัวเอง ข้อเสียของ XML: เมื่อคุณลักษณะของโมเดลมีการเปลี่ยนแปลงจะต้องเปลี่ยนจาก DO เป็น DAO เป็น XML มันจะเป็นความเจ็บปวดที่จะคิดเกี่ยวกับมัน ~ XML ก็มีข้อดีเช่นกัน SQL Fragment Reuse นั้นสะดวกและไวยากรณ์สามารถเข้าถึงได้ ไม่เหมือนกับคำอธิบายประกอบคุณต้องสร้างคำสั่งแบบไดนามิกและสร้างคลาส ยิ่งไปกว่านั้นเมื่อส่วนของ SQL มีการอ้างอิงหลายสถานที่รหัสจะปรากฏซ้ำซ้อน ในเวลานี้ต้องใช้ XML เพื่อแยกและใช้ร่วมกัน ฉันบ่นเกี่ยวกับคำอธิบายประกอบของ mybatis จะไม่ใส่คำอธิบายประกอบที่ไร้ประโยชน์หรือไม่? ไม่ MyBatis เหมาะสำหรับสถานการณ์ที่คุณลักษณะของแบบจำลองมักจะเปลี่ยนไปเพราะมันสามารถรวมกับการสะท้อนและ SQL ที่สร้างขึ้นแบบไดนามิก (ไร้สาระล้วนๆความคิดส่วนตัวควรรับรู้และจะทำอีกวัน) อาจกล่าวได้ว่าข้อดีของคำอธิบายประกอบ Mybatis ประกอบขึ้นสำหรับข้อบกพร่องของ XML ได้ดี ทั้งสองเติมเต็มซึ่งกันและกัน ~
ข้างต้นเป็นการเริ่มต้นอย่างรวดเร็วของคำอธิบายประกอบการพัฒนา MyBatis ที่แนะนำโดยบรรณาธิการ ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับทุกคนในเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!