รู้เบื้องต้นเกี่ยวกับ MyBatis:
MyBatis เป็นโครงการโอเพ่นซอร์สของ Apache ในปี 2010 โครงการนี้ถูกย้ายจาก Apache Software Foundation เป็น Google Code และถูกเปลี่ยนชื่อ MyBatis อพยพไปยัง GitHub ในเดือนพฤศจิกายน 2013
MyBatis เป็นเฟรมเวิร์กเลเยอร์การคงอยู่ที่ยอดเยี่ยมที่รองรับ SQL ที่กำหนดเองขั้นตอนที่เก็บไว้และการทำแผนที่ขั้นสูง MyBatis หลีกเลี่ยงรหัส JDBC เกือบทั้งหมดและการตั้งค่าพารามิเตอร์ด้วยตนเองและรับชุดผลลัพธ์ MyBatis สามารถใช้ XML หรือคำอธิบายประกอบแบบง่าย ๆ เพื่อกำหนดค่าและแมปข้อมูลเนทีฟอินเทอร์เฟซการแมปและ Java Pojos (วัตถุ Java เก่าธรรมดา) ลงในบันทึกในฐานข้อมูล
1. ฟังก์ชั่นของ mybatis:
พูดง่ายๆคือ MyBatis ใช้เลเยอร์ DAO ซึ่งกำหนดค่า SQL ผ่านไฟล์ XML และแผนที่เป็น PO
2. แพ็คเกจใบเสนอราคาที่ต้องเตรียม
mybatis-3.2.8.jar: ใช้กรอบ mybatis
ojdbc6.jar: การเชื่อมต่อฐานข้อมูล
การกำหนดค่าสภาพแวดล้อม mybatis (นี่คือการกำหนดค่าแยกต่างหากของ mybatis):
ก่อน: ดาวน์โหลดและนำเข้าแพ็คเกจ Mybatis Jar
ที่อยู่ดาวน์โหลดของ v3.4.5 คือ:
http://xiazai.vevb.com/201712/yuanma/mybatis-3.4.5.rar
หากคุณไม่ต้องการใช้เวอร์ชัน 3.4.5 แต่ถ้าคุณลืมที่อยู่เราสามารถค้นหาได้โดยตรงบนเว็บไซต์ทางการของ github.com: mybatis
ผลการค้นหาจะแสดงในรูป:
คลิกดาวน์โหลดล่าสุดในเวลานี้จากนั้นเลือกเวอร์ชันที่คุณต้องการดาวน์โหลด
คลายซิปแพ็คเกจบีบอัดที่ดาวน์โหลดมาและนำเข้า MyBatis-3.4.5.JAR และขวดในโฟลเดอร์ LIB ลงใน Eclipse แน่นอนในเวลานี้คุณต้องนำเข้าแพ็คเกจ JAR ของไดรเวอร์ MySQL ไปยัง MySQL-Connector-Java-5.1.44.jar
เนื่องจากเราไม่ได้ใช้ Maven ที่นี่จึงไม่จำเป็นต้องมีการกำหนดค่าต่อไปนี้เพราะเราได้นำเข้าขวดทั้งหมดด้วยตนเอง:
<การพึ่งพา> <roupId> org.mybatis </groupId> <ratifactid> mybatis </artifactid> <version> 3.4.5 </version> </deperency>
2. การเขียนไฟล์กำหนดค่า
สร้างโฟลเดอร์ต้นทางในโครงการของคุณเองจัดเก็บเอกสารการกำหนดค่าของคุณเองและสร้าง sqlmappersconfig.xml และคัดลอกการกำหนดค่าต่อไปนี้ (การกำหนดค่าอย่างเป็นทางการที่จัดทำโดยทางการเปลี่ยนการกำหนดค่าอย่างเป็นทางการเป็นของคุณเอง):
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <! doctype configurationPublic "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd" <transactionManager type = "jdbc"/> <dataSource type = "pooled"> <property name = "driver" value = "$ {driver}"/> <property name = "url" value = "$ {url}"/> <property name = "username} </environment> </environments> <mappers> <mapper resource = "org/mybatis/example/blogmapper.xml"/> </mappers> </การกำหนดค่า>การกำหนดค่าใน sqlconnect.properties มีดังนี้:
sqldriver: com.mysql.jbdc.driversqlurl: mysql: jbdc: //172.20.60.2/spectergk? useunicode = true & characterencoding = utf8sqlusername: testsqluserpwd: 1111111111111111111111111111111111111111111111111111111111
ตกลงจนถึงตอนนี้เราได้กำหนดค่าการกำหนดค่าพื้นฐานที่จำเป็นต้องได้รับการกำหนดค่า แต่นี่เป็นเพียงการกำหนดค่าของการกำหนดค่ารหัสทดสอบ:
Public Void functiontest () {//system.out.println("start mybatis "); inputStream inputStream = null; ลอง {<br data-filtered = "Filtered"> inputStream = resources.getResourceasstream ("SQLMAPCONFIG.XML"); } catch (ioexception e) {// todo บล็อก catch block ที่สร้างอัตโนมัติ e.printstacktrace (); } /** สร้างโรงงาน* / SQLSessionFactory SQLSessionFactory = ใหม่ SQLSessionFactoryBuilder (). build (inputStream); / * * เปิด ssion */ sqlsession sqlsession = sqlsessionfactory.opensession (); System.out.println (SQLSession); sqlsession.close (); ลอง {inputStream.close (); } catch (ioexception e) {// todo บล็อก catch block ที่สร้างอัตโนมัติ e.printstacktrace (); -ในเวลานี้การพิมพ์เป็นค่าที่พิสูจน์ได้ว่าเราได้กำหนดค่าให้สำเร็จและเราสามารถตั้งค่าแผนที่สำหรับส่วนที่เหลือ
ประการที่สอง: การสร้างและการใช้ mappers เนื่องจาก mybatis mapper สามารถใช้พร็อกซีแบบไดนามิกและเราใช้พร็อกซีแบบไดนามิกโดยตรงที่นี่:
สร้างในแพ็คเกจ pojo:
user.java
สร้างในแพ็คเกจ Mappers:
usermapper.java
สร้างในไดเรกทอรีเดียวกับ sqlmappersconfig.xml:
user.xml
และกำหนดค่ารหัสต่อไปนี้ใน sqlmappersconfig.xml:
<!-ต่อไปนี้เป็นนามแฝงชื่อแพ็คเกจของ com.spectergk.mybatis.pojo.user-!> <ypealiases> <typealias type = "com.spectergk.mybatis.pojo.user" mappers> </> Resource = "user.xml"/> </mappers>
ใช้การเพิ่มการลบการดัดแปลงและการค้นหาฐานข้อมูลอย่างง่าย การใช้งานเฉพาะมีดังนี้:
user.xml
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <! doctype mapper สาธารณะ "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd เงื่อนไขสำหรับการใช้งานพร็อกซีแบบไดนามิก-> <mapper namespace = "com.spectergk.mybatis.mappers.usermapper"> <!-ค่าส่งคืนที่กำหนดค่าไว้ที่นี่คือผู้ใช้นี่เป็นเพราะการเปลี่ยนชื่อได้รับการกำหนดค่าใน SQLMappersConfig.xml-> <! ค่าที่ส่งผ่านโดยผู้ใช้คือพารามิเตอร์-> <select id = "selectUserById" resultType = "ผู้ใช้" พารามิเตอร์ = "สตริง"> เลือก * จากผู้ใช้ที่ uid = #{v} </select> <! เช่น "%"#{v} "%"; </select> <!-แทรกข้อมูลลงในฐานข้อมูล-> <insert id = "InserToneUser" parameterType = "ผู้ใช้"> แทรกลงในผู้ใช้ (uid, ชื่อผู้ใช้, realName, มือถือ, mainPid, เพศ) ค่า (#{uid},#{username},#{realname} </insert> <!-UID ที่สร้างขึ้นโดยอัตโนมัติที่แทรกข้อมูลและส่งคืน-> <insert id = "InserToneUserGetId" parameterType = "ผู้ใช้"> <selectKey keyProperty = "uid" keycolumn = "uid" ผู้ใช้ (ชื่อผู้ใช้, realName, มือถือ, mainpid, sex) ค่า (#{username},#{realname},#{mobile},#{mainpid},#{sex}); </insert> <!-แทรกในรูปแบบรายการ-> <insert id = "insetusers"> แทรกลงในผู้ใช้ (uid, ชื่อผู้ใช้, realName, มือถือ, mainpid, sex) ค่า <foreach collection = "list" item = "item" separator = ","> (#ime.uid},#{item.username},#{item.realname},#{item.mobile},#{item.mainpid},#{item.sex}) </foreach> ผู้ใช้ (uid, ชื่อผู้ใช้, realname, มือถือ, mainpid, sex) ค่า <foreach collection = "array" item = "item" separator = ","> (#{item.uid},#{item.username},#{item.realname},#{item.mobile} </insert> <!-ผู้ใช้อัปเดต-> <update id = "updateUser" parameterType = "ผู้ใช้"> อัปเดตผู้ใช้ตั้งชื่อผู้ใช้ = #{ชื่อผู้ใช้} โดยที่ uid = #{uid} </update> <!-ลบผู้ใช้-> id = "deletemoreUsers"> ลบจากผู้ใช้ที่ uid ใน (<foreach collection = "list" item = "item" separator = ","> #{item}เพราะกำลังโหลดแบบไดนามิกเพียงเขียนอินเทอร์เฟซที่นี่:
แพ็คเกจ com.spectergk.mybatis.mappers; นำเข้า java.util.list; นำเข้า com.spectergk.mybatis.pojo.user; อินเทอร์เฟซสาธารณะ usermapper { / * * แบบสอบถามตามรหัสผู้ใช้ * / ผู้ใช้สาธารณะ SelectUserById (String ID); / * * แบบสอบถามฟัซซี่ตามชื่อผู้ใช้ */ รายการสาธารณะ <ผู้ใช้> SelectUsersByUserName (ชื่อผู้ใช้สตริง); /** แทรกผู้ใช้*/ โมฆะสาธารณะ insertoneUser (ผู้ใช้ผู้ใช้); / * * แทรกผู้ใช้และส่งคืน ID ของผู้ใช้ที่แทรก */ โมฆะสาธารณะ InserToneUserGetId (ผู้ใช้ผู้ใช้); /** แทรกผู้ใช้หลายคน*/ การแทรกโมฆะสาธารณะ (รายการ <ผู้ใช้> ผู้ใช้); / * * แทรกผู้ใช้หลายคนเพื่อส่งอาร์เรย์ */ โมฆะสาธารณะ InsertusERSARRAY (ผู้ใช้ [] ผู้ใช้); /** UpdateUser Update*/ Public Void UpdateUser (ผู้ใช้ผู้ใช้); / * * ลบหนึ่ง */ โมฆะสาธารณะ deleteoneUser (สตริง uid); / * * deleTemoreUsers ลบหลาย */ โมฆะสาธารณะ deleTemoreUsers (รายการ <String> uids);}เนื่องจากรหัสทดสอบมีเพียงรหัสทดสอบฟัซซี่เท่านั้นที่เขียนไว้ที่นี่:
// Query Public Void Fuzzysearch () {System.out.println ("เริ่ม mybatis"); inputStream inputStream = null; ลอง {inputStream = resources.getResourceasstream ("sqlmapconfig.xml"); } catch (ioexception e) {// todo บล็อก catch block ที่สร้างอัตโนมัติ e.printstacktrace (); } /** สร้างโรงงาน* / this.SQLSessionFactory = ใหม่ SQLSessionFactoryBuilder (). build (inputStream); / * * เปิด ssion */ sqlsession sqlsession = this.sqlsessionfactory.opensession (); System.out.println (SQLSession); USERMAPPER USERMAPPER = SQLSESSION.GETMAPPER (USERMAPPER.CLASS); รายการ <user> ผู้ใช้ = usermapper.selectusersbyUsername ("liu"); สำหรับ (ผู้ใช้ผู้ใช้: ผู้ใช้) {system.out.println (ผู้ใช้); } sqlsession.close (); -สรุป
ด้านบนเป็นรหัสตัวอย่างสำหรับการก่อสร้างและการใช้สภาพแวดล้อม mybatis ที่แนะนำโดยบรรณาธิการ ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!