รีวิวการใช้งานขั้นพื้นฐาน:
คำสั่ง SQL จะถูกเก็บไว้ในไฟล์ XML หรือคำอธิบายประกอบ Java ตัวอย่างการแมป Mabatis (ซึ่งใช้อินเตอร์เฟส Java และคำอธิบายประกอบ Mybatis):
Package org.mybatis.example; Interface Public BlogMapper {@select ("เลือก * จากบล็อกที่ id = #{id}") บล็อก selectblog (int id);}ตัวอย่างของการดำเนินการ:
blogmapper mapper = session.getMapper (blogmapper.class); บล็อกบล็อก = mapper.selectblog (101);
คำสั่งและการแมป SQL สามารถนำไปภายนอกไปยังไฟล์ XML:
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <! doctype mapper สาธารณะ "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd namespace = "org.mybatis.example.blogmapper"> <select id = "selectblog" parameterType = "int" resultType = "blog"> เลือก * จากบล็อกที่ id = #{id} </select> </mapper>นอกจากนี้คุณยังสามารถใช้ MyBatis API เพื่อดำเนินการตามคำสั่ง:
บล็อกบล็อก = session.selectone ("org.mybatis.example.blogmapper.selectblog", 101);สำหรับรายละเอียดโปรดดูคู่มือผู้ใช้ที่จัดทำโดยเว็บไซต์ MyBatis
รวมกับฤดูใบไม้ผลิ
MyBatis รวมเข้ากับกรอบฤดูใบไม้ผลิ Framework Spring ช่วยให้ mybatis มีส่วนร่วมในการทำธุรกรรมฤดูใบไม้ผลิสร้าง mybatis mapers และเซสชันและฉีดเข้าไปในถั่วอื่น
นี่คือตัวอย่างการกำหนดค่า XML พื้นฐาน: mapper ถูกสร้างและฉีดลงในถั่ว "blogservice"
<bean id = "sqlsessionfactory"> <property name = "dataSource" ref = "dataSource" /> </ebean> <bean id = "BlogMapper"> <property name = "SQLSessionFactory" ref = "SQLSessionFactory" /> /> </ebean> <bean id = "blogservice"> <property name = "BlogMapper" ref = "BlogMapper" /> </ebean>
ตอนนี้โทรหา mybatis ต้องเรียกถั่วหนึ่งตัวเท่านั้น:
Public Class BlogServiceImpl ใช้ BlogService {BlogMapper Private BlogMapper; โมฆะสาธารณะ setBlogMapper (BlogMapper BlogMapper) {this.blogMapper = BlogMapper; } โมฆะสาธารณะ dosomethingWithAblog (int blogid) {บล็อกบล็อก = blogmapper.selectblog (บล็อกิด); - sqlsessionfactory
แอปพลิเคชัน MyBatis แต่ละตัวใช้อินสแตนซ์ของวัตถุ SQLSessionFactory เป็นแกนกลาง SQLSessionFactory ถูกสร้างขึ้นโดย SQLSessionFactoryBuilder โดยทั่วไปในแอปพลิเคชันฐานข้อมูลจะสอดคล้องกับ SQLSessionFactory เท่านั้นดังนั้นเราจึงกำหนด SQLSessionFactory เป็นรูปแบบ Singleton หรือฉีดผ่านฤดูใบไม้ผลิ ฯลฯ
วิธีการสร้าง SQLSessionFactoryBuilder เพื่อสร้าง SQLSessionFactory คือ:
พารามิเตอร์หลักที่ออกแบบโดยวิธีการเหล่านี้คืออินพุตสตรีมสภาพแวดล้อมและคุณสมบัติโดยที่อินพุตสตรีมเป็นสตรีมอินพุตที่ได้จากไฟล์การกำหนดค่า สภาพแวดล้อมแสดงถึงสภาพแวดล้อมที่คุณใช้อยู่ระหว่างสภาพแวดล้อมจำนวนมากที่กำหนดค่าไว้ในไฟล์กำหนดค่ารวมถึงแหล่งข้อมูลและธุรกรรมและสภาพแวดล้อมเริ่มต้นถูกใช้โดยค่าเริ่มต้น การใช้คุณสมบัติ MyBatis จะโหลดคุณสมบัติหรือไฟล์ที่เกี่ยวข้องซึ่งสามารถใช้ในไฟล์การกำหนดค่า
การสร้าง SQLSessionFactory จาก XML
sqlsessionfactory ส่วนตัว sqlsessionfactory ส่วนตัว = null; คงที่ {ลอง {inputStream คือ = resources.getResourceasstream ("config/mybatis_config.xml"); SQLSessionFactory = ใหม่ SQLSessionFactoryBuilder (). สร้าง (IS); } catch (ioexception e) {// todo บล็อก catch block ที่สร้างอัตโนมัติ e.printstacktrace (); }} สาธารณะ sqlsessionfactory getSqlSessionFactory () {return sqlsessionfactory; -
ต่อไปนี้เป็นโครงสร้างพื้นฐานของไฟล์การกำหนดค่า:
ไฟล์การกำหนดค่าของ MyBatis โดยทั่วไปจะมีส่วนต่อไปนี้:
<environment default = "การพัฒนา"> <environment id = "การพัฒนา"> <transactionManager type = "jdbc" /> <dataSource type = "pooled"> <property name = "driver" value = "$ {jdbc.driver}" /> <property name = "url =" repername /> <property name = "password" value = "$ {jdbc.password}"/> </dataSource> </environment> </environments> เนื่องจาก MyBatis สามารถกำหนดค่าสภาพแวดล้อมที่หลากหลายคุณสามารถระบุสภาพแวดล้อมที่เฉพาะเจาะจงเมื่อสร้าง SQLSessionFactory เพื่อสร้าง SQLSessionFactory หากคุณไม่ได้ระบุสภาพแวดล้อมเริ่มต้นจะถูกใช้
TransactionManager
ผู้จัดการธุรกรรมมีสองประเภทใน mybatis (นั่นคือประเภท =” [JDBC | จัดการ]”)::
JDBC การกำหนดค่านี้โดยตรงและใช้การตั้งค่าการประชุมและการย้อนกลับของ JDBC มันขึ้นอยู่กับการเชื่อมต่อที่ได้จากแหล่งข้อมูลเพื่อจัดการขอบเขตการทำธุรกรรม
การกำหนดค่าที่ได้รับการจัดการนั้นเพียงเล็กน้อย มันไม่เคยกระทำหรือย้อนกลับการเชื่อมต่อ และช่วยให้คอนเทนเนอร์สามารถจัดการวงจรชีวิตทั้งหมดของธุรกรรม (เช่นบริบทของสปริงหรือเซิร์ฟเวอร์แอปพลิเคชัน JEE) จะปิดการเชื่อมต่อตามค่าเริ่มต้น อย่างไรก็ตามคอนเทนเนอร์บางตัวไม่ต้องการสิ่งนี้ดังนั้นหากคุณต้องการหยุดจากการเชื่อมต่อให้ตั้งค่าคุณสมบัติ closeconnection เป็นเท็จ
แหล่งข้อมูล
องค์ประกอบ DataSource ใช้อินเทอร์เฟซแหล่งข้อมูล JDBC พื้นฐานเพื่อกำหนดค่าทรัพยากรสำหรับวัตถุการเชื่อมต่อ JDBC
แอปพลิเคชัน MyBatis จำนวนมากจะกำหนดค่าแหล่งข้อมูลดังแสดงในตัวอย่าง อย่างไรก็ตามไม่จำเป็น คุณควรรู้ว่าเพื่ออำนวยความสะดวกในการใช้การโหลดขี้เกียจจำเป็นต้องมีแหล่งข้อมูล
มีแหล่งข้อมูลในตัวสามประเภท (นั่นคือประเภท = "???"):
การใช้งานแหล่งข้อมูลนี้ไม่มีการเปิดจูนเพียงแค่เปิดและปิดการเชื่อมต่อทุกครั้งที่มีการร้องขอ มันค่อนข้างช้าซึ่งเป็นตัวเลือกที่ยอดเยี่ยมสำหรับแอปพลิเคชันง่าย ๆ เนื่องจากไม่จำเป็นต้องมีการเชื่อมต่อที่เหมาะสม ฐานข้อมูลที่แตกต่างกันยังทำงานแตกต่างกันในเรื่องนี้ดังนั้นสำหรับบางฐานข้อมูลบางอย่างไม่สำคัญในการกำหนดค่าแหล่งข้อมูลและการกำหนดค่านี้ยังไม่ได้ใช้งาน แหล่งข้อมูลประเภทที่ไม่ได้ใช้งานจะใช้เพื่อกำหนดค่าคุณสมบัติ 5 ประการต่อไปนี้เท่านั้น:
เป็นตัวเลือกคุณสามารถผ่านคุณสมบัติไดรเวอร์ฐานข้อมูล ในการทำเช่นนี้คำนำหน้าของแอตทริบิวต์เริ่มต้นด้วย "ไดรเวอร์" ตัวอย่างเช่น:
driver.encoding = utf8
สิ่งนี้จะส่งผ่านค่า "UTF8" เพื่อส่งผ่านคุณสมบัติ "การเข้ารหัส" ซึ่งส่งผ่านไปยังไดรเวอร์ฐานข้อมูลผ่านวิธี DriverManager.getConnection (URL, Method DriverProperties)
Pooled นี่คือการใช้งานพูลการเชื่อมต่อแหล่งข้อมูลสำหรับวัตถุการเชื่อมต่อ JDBC ซึ่งใช้เพื่อหลีกเลี่ยงการเชื่อมต่อเริ่มต้นที่จำเป็นและเวลาตรวจสอบความถูกต้องเมื่อสร้างอินสแตนซ์การเชื่อมต่อใหม่ นี่เป็นวิธีที่ได้รับความนิยมในปัจจุบันโดยเว็บแอปพลิเคชันเพื่อตอบสนองต่อคำขออย่างรวดเร็ว
นอกเหนือจากแอตทริบิวต์ข้างต้น (unpooled) แล้วยังมีแอตทริบิวต์มากมายที่สามารถใช้ในการกำหนดค่าแหล่งข้อมูลที่รวบรวมได้:
ในหมู่พวกเขาการกำหนดค่าแหล่งข้อมูล JNDI ต้องการเพียงสองคุณสมบัติเท่านั้น:
(1) คุณสมบัติเริ่มต้น _context ใช้เพื่อค้นหาสภาพแวดล้อมจากบริบทเริ่มต้น (นั่นคือ initialContext.lookup (เริ่มต้น-บริบท) นี่เป็นคุณสมบัติทางเลือกหากถูกละเว้นคุณสมบัติ Data_Source จะถูกค้นหาอีกครั้งโดยตรงกับ InitialContext เป็นพื้นหลัง
(2) Data_Source นี่คือเส้นทางที่อ้างอิงบริบทของตำแหน่งอินสแตนซ์แหล่งข้อมูล มันจะมองหาสภาพแวดล้อมที่ส่งคืนโดยแบบสอบถามเริ่มต้น _context เป็นพื้นหลัง หากเริ่มต้น _context ไม่ส่งคืนผลลัพธ์มันจะมองหาบริบทเริ่มต้นเป็นสภาพแวดล้อมโดยตรง
จากนั้นก็มีผู้ทำแผนที่ Mapper ใช้เพื่อทำแผนที่คำสั่ง SQL ก่อนอื่นฉันต้องบอก mybatis ว่าจะหาคำสั่ง SQL เหล่านี้ได้ที่ไหนเพื่อระบุตำแหน่งทรัพยากร
<Mappers> <mapper resource = "com/tiantian/mybatis/model/blogmapper.xml"/> </mappers>
นี่คือไฟล์การกำหนดค่าอย่างง่ายที่ฉันทำระหว่างกระบวนการทดสอบ:
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <! การกำหนดค่า doctype สาธารณะ "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd Resource = "config/jdbc.properties"> </properties> <peryealiases> <typealias alias = "blog" type = "com.tiantian.mybatis.model.blog"/> </typealiases> <environment default = "การพัฒนา" name = "driver" value = "$ {jdbc.driver}" /> <property name = "url" value = "$ {jdbc.url}" /> <property name = "username" value = "$ {jdbc.username}" /> <Mappers> <mapper resource = "com/tiantian/mybatis/model/blogmapper.xml"/> </mappers> </การกำหนดค่า>
ไฟล์คุณสมบัติภายนอกจะถูกนำเข้าสู่ไฟล์กำหนดค่าด้านบน การแนะนำคุณสมบัติในไฟล์การกำหนดค่า MyBatis สามารถรวมอยู่ในองค์ประกอบคุณสมบัติโดยตรงหรือสามารถนำมาใช้ได้จากภายนอกโดยใช้องค์ประกอบคุณสมบัติหรือสามารถส่งผ่านเป็นคุณสมบัติพารามิเตอร์เมื่อสร้าง SQLSessionFactory เนื่องจากคุณสมบัติในไฟล์การกำหนดค่า MyBatis สามารถนำมาใช้ได้จากสถานที่มากมายจึงเกี่ยวข้องกับปัญหาลำดับความสำคัญและ mybatis จะมองหาพวกเขาในลำดับต่อไปนี้:
ก่อนอื่นในไฟล์การกำหนดค่าคุณสมบัติในตัวองค์ประกอบองค์ประกอบคุณสมบัติจะถูกอ่านและจากนั้นคุณสมบัติในไฟล์คุณสมบัติที่แนะนำจากภายนอกจะอ่านซึ่งจะเขียนทับคุณสมบัติเดียวกันที่อ่านก่อน ในที่สุดคุณสมบัติในคุณสมบัติที่ส่งผ่านเมื่อสร้าง SQLSessionFactory จะถูกอ่านซึ่งจะเขียนทับคุณสมบัติเดียวกันก่อน
หลังจากมี SQLSessionFactory คุณจะได้รับ SQLSession ที่เฉพาะเจาะจง ในกระบวนการใช้ mybatis การดำเนินการทุกครั้งจะแยกออกจาก SQLSession ดังนั้นจึงเป็นเรื่องสำคัญมากที่จะได้รับ SQLSession นอกจากนี้ SQLSession ไม่สามารถแชร์และไม่ปลอดภัยด้ายดังนั้นคุณควรเปิดหนึ่งครั้งทุกครั้งที่คุณต้องการ SQLSession แล้วปิดหลังจากใช้งาน
SQLSESSION SESSION = SQLSessionFactory.opensession ();
วิธีการของ SQLSessionFactory Zhonghu District Sqlsession คือ:
ความแตกต่างหลักของพวกเขาคือ:
วิธีการ OpenSession เริ่มต้นไม่มีพารามิเตอร์มันจะสร้าง SQLSession ด้วยคุณสมบัติต่อไปนี้:
Executortype มีสามค่า:
การดำเนินการพื้นฐานของ mybatis คือการเพิ่มลบแก้ไขและตรวจสอบคือแทรกลบการอัปเดตและเลือก เมื่อทำการดำเนินการพื้นฐานเหล่านี้คุณสามารถใช้ SQLSession โดยตรงเพื่อเข้าถึงการแมปในไฟล์การกำหนดค่า Mapper หรือคุณสามารถใช้อินเทอร์เฟซแม็ปเปอร์ที่สอดคล้องกับไฟล์การกำหนดค่า Mapper เพื่อดำเนินการโดยสมมติว่าพารามิเตอร์และค่าส่งคืนของวิธีการที่กำหนดไว้ในไฟล์ Mapper Interface นอกจากนี้เมื่อใช้อินเทอร์เฟซ Mapper คำสั่ง SQL ที่สอดคล้องกันสามารถเขียนได้ในไฟล์การกำหนดค่า Mapper หรือสามารถทำเครื่องหมายได้โดยตรงบนวิธีการที่สอดคล้องกันในอินเตอร์เฟส Mapper โดยใช้คำอธิบายประกอบที่สอดคล้องกัน จะเห็นได้ในรหัสตัวอย่างต่อไปนี้
นี่คือชุดตัวอย่างของรหัส:
โพสต์ครั้งแรกคลาสเครื่องมือเพื่อรับ sqlsessionfactory:
นำเข้า java.io.ioException; นำเข้า Java.io.InputStream; นำเข้า org.apache.ibatis.io.resources; นำเข้า org.apache.ibatis.session.sqlsessionfactory; นำเข้า org.apache.ibatis.session.sqlsessionfactorybuilder; ชั้นเรียนสาธารณะ {ส่วนตัว sqlsessionfactory sqlsessionfactory = null; คงที่ {ลอง {inputStream คือ = resources.getResourceasstream ("config/mybatis_config.xml"); SQLSessionFactory = ใหม่ SQLSessionFactoryBuilder (). สร้าง (IS); } catch (ioexception e) {// todo บล็อก catch block ที่สร้างอัตโนมัติ e.printstacktrace (); }} สาธารณะ sqlsessionfactory getSqlSessionFactory () {return sqlsessionfactory; -
ไฟล์กำหนดค่า MyBatis:
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <! การกำหนดค่า doctype สาธารณะ "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd Resource = "config/jdbc.properties"> </properties> <peryealiases> <typealias alias = "blog" type = "com.tiantian.mybatis.model.blog"/> </typealiases> <environment default = "การพัฒนา" name = "driver" value = "$ {jdbc.driver}" /> <property name = "url" value = "$ {jdbc.url}" /> <property name = "username" value = "$ {jdbc.username}" /> <Mappers> <mapper resource = "com/tiantian/mybatis/model/blogmapper.xml"/> </mappers> </การกำหนดค่า>
blogmapper.xml
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <! doctype mapper สาธารณะ "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" namespace = "com.tiantian.mybatis.model.blogmapper"> <!-เพิ่มระเบียน-> <แทรก id = "insertblog" พารามิเตอร์ = "บล็อก"> แทรกลงใน t_blog (ชื่อเนื้อหาเจ้าของ) ค่า (#{title},#},#},#} parameterType = "int" resultType = "blog"> เลือก * จาก t_blog โดยที่ id = #{id} </select> <!-แก้ไขบันทึก-> <update id = "updateBlog" parameterType = "blog"> update t_blog set title = #{title} บันทึกและสอบถามหลายระเบียนเพื่อส่งคืนผลลัพธ์คือคอลเลกชัน ResultType ไม่ใช่ประเภทการรวบรวม แต่ประเภทที่มีอยู่ในคอลเลกชัน-> <select id = "selectall" resultType = "blog"> เลือก * จาก t_blog </select> <!-คำถามฟัซซี่-> <select id = "FuzzyQuery" "%" #{title} "%" </select> <!-ลบบันทึก-> <ลบ id = "deleteBlog" parameterType = "int"> ลบจาก t_blog โดยที่ id = #{id}ปัญหาบางอย่างที่ควรสังเกตในงบการแมป SQL:
blog.java
แพ็คเกจ com.tiantian.mybatis.model; บล็อกชั้นเรียนสาธารณะ {ID INT ส่วนตัว; ชื่อสตริงส่วนตัว; เนื้อหาสตริงส่วนตัว เจ้าของสตริงส่วนตัว สาธารณะ int getId () {return id; } โมฆะสาธารณะ setId (int id) {this.id = id; } สตริงสาธารณะ getTitle () {return title; } โมฆะสาธารณะ settitle (ชื่อสตริง) {this.title = title; } สตริงสาธารณะ getContent () {return content; } โมฆะสาธารณะ setContent (เนื้อหาสตริง) {this.content = เนื้อหา; } Public String getOwner () {return เจ้าของ; } โมฆะสาธารณะ setowner (เจ้าของสตริง) {this.Owner = เจ้าของ; } @Override สตริงสาธารณะ toString () {return "id:" + id + ", ชื่อ:" + title + ", เนื้อหา:" + เนื้อหา + ", เจ้าของ:" + เจ้าของ; -
blogmapper.java
แพ็คเกจ com.tiantian.mybatis.model; นำเข้า java.util.list; นำเข้า org.apache.ibatis.annotations.delete; นำเข้า org.apache.ibatis.annotations.insert; นำเข้า org.apache.ibatis.annotations.select; นำเข้า org.apache.ibatis.annotations.update; / *** การดำเนินการต่อไปนี้ 1 เขียน SQL ในไฟล์การกำหนดค่าในขณะที่การดำเนินการ 2 ระบุคำสั่ง SQL โดยตรงที่จะดำเนินการด้วยคำอธิบายประกอบ* เนื่องจากชื่อเต็มของ mapper นั้นเหมือนกับ namespace ในไฟล์ blogmapper.xml และไม่สามารถรวมได้ที่นี่ บล็อกสาธารณะ SelectBlog (ID int); @select ("เลือก * จาก t_blog โดยที่ id = #{id}") บล็อกสาธารณะ selectblog2 (int id); โมฆะสาธารณะ InsertBlog (บล็อกบล็อก); @Insert ("แทรกลงใน t_blog (ชื่อ, เนื้อหา, เจ้าของ) ค่า (#{title},#{content},#{เจ้าของ})") โมฆะสาธารณะ InsertBlog2 (บล็อกบล็อก); โมฆะสาธารณะ UpdateBlog (บล็อกบล็อก); @UpDate ("อัปเดต t_blog set title =#{title}, content =#{content}, เจ้าของ =#{เจ้าของ} โดยที่ id =#{id}") โมฆะสาธารณะ updateBlog2 (บล็อกบล็อก); โมฆะสาธารณะ deleteBlog (ID int); @delete ("ลบจาก t_blog โดยที่ id = #{id}") โมฆะสาธารณะ deleteBlog2 (int id); รายการสาธารณะ <บล็อก> selectall (); @select ("เลือก * จาก t_blog") รายการสาธารณะ <บล็อก> selectall2 (); รายการสาธารณะ <บล็อก> FuzzyQuery (ชื่อสตริง); @Select ("เลือก * จาก t_blog โดยที่ชื่อเช่น/"%/"#{title}/"%/"") รายการสาธารณะ <บล็อก> FuzzyQuery2 (ชื่อสตริง); -
test1.java
แพ็คเกจ com.tiantian.mybatis.test; นำเข้า java.util.list; นำเข้า org.apache.ibatis.session.sqlsession; นำเข้า org.junit.test; นำเข้า com.tiantian.mybatis.model.blog; นำเข้า com.tiantian.mybatis.util.util; / *** ชุดการดำเนินการนี้คือการเขียน SQL ในไฟล์กำหนดค่าจากนั้นใช้ SQLSession สำหรับการดำเนินการ* @author Andy**/ คลาสสาธารณะ test1 {/ *** เพิ่มระเบียน*/ @test public public testinsertBlog () {sqlsession เซสชัน = util.getSqlSessionFactory () บล็อกบล็อก = บล็อกใหม่ (); blog.settitle ("จีน"); blog.setContent ("มีความฝันมากมายที่ซ่อนอยู่ในสายลมและฝนเป็นเวลาห้าพันปี"); blog.setowner ("Daily"); session.insert ("com.tiantian.mybatis.model.blogmapper.insertblog", บล็อก); session.commit (); session.close (); } / *** สอบถามบันทึกเดียว* / @test โมฆะสาธารณะ testselectone () {sqlsession session = util.getSqlSessionFactory (). opensession (); บล็อกบล็อก = (บล็อก) เซสชัน SESSECTONE ("com.tiantian.mybatis.model.blogmapper.selectblog", 8); System.out.println (บล็อก); session.close (); } / *** แก้ไขระเบียน* / @Test โมฆะสาธารณะ TestUpDateBlog () {SQLSession Session = Util.GetSqlSessionFactory (). OpenSession (); บล็อกบล็อก = บล็อกใหม่ (); blog.setId (7); // id ของบล็อกที่จำเป็นต้องได้รับการแก้ไข blog.settitle ("จีน 2"); // แก้ไขชื่อบล็อก SetContent ("ใบหน้าสีเหลือง, ดวงตาสีดำ, ไม่เปลี่ยนแปลงรอยยิ้ม"); บล็อก); session.commit (); session.close (); } / *** สอบถามบันทึกทั้งหมด* / @Test โมฆะสาธารณะ testSelectall () {SQLSession Session = util.getSqlSessionFactory (). OpenSession (); รายการ <wlog> blogs = session.selectList ("com.tiantian.mybatis.model.blogmapper.selectall"); สำหรับ (บล็อกบล็อก: บล็อก) System.out.println (บล็อก); session.close (); } / *** Query ฟัซซี่* / @Test โมฆะสาธารณะ TestFuzzyQuery () {SQLSession Session = Util.GetSqlSessionFactory (). OpenSession (); String title = "China"; รายการ <wlog> blogs = session.selectList ("com.tiantian.mybatis.model.blogmapper.fuzzyquery", ชื่อเรื่อง); สำหรับ (บล็อกบล็อก: บล็อก) System.out.println (บล็อก); session.close (); } / *** ลบระเบียน* / @Test โมฆะสาธารณะ TestDeleTeBlog () {SQLSession Session = Util.GetSqlSessionFactory (). OpenSession (); session.delete ("com.tiantian.mybatis.model.blogmapper.deleteBlog", 8); session.commit (); session.close (); -
test2.java
แพ็คเกจ com.tiantian.mybatis.test; นำเข้า java.util.list; นำเข้า org.apache.ibatis.session.sqlsession; นำเข้า org.junit.test; นำเข้า com.tiantian.mybatis.model.blog; นำเข้า com.tiantian.mybatis.model.blogmapper; นำเข้า com.tiantian.mybatis.util.util; / *** ชุดการดำเนินงานนี้คือการเขียนคำสั่ง SQL ในไฟล์กำหนดค่า* จากนั้นดำเนินการผ่านอินเตอร์เฟสแม็ปเปอร์ที่สอดคล้องกัน* @author Andy**/ คลาสสาธารณะ test2 {/ *** เพิ่มระเบียน*/ @Test Public Void TestinSertBlog () บล็อกบล็อก = บล็อกใหม่ (); blog.settitle ("จีน"); blog.setContent ("มีความฝันมากมายที่ซ่อนอยู่ในสายลมและฝนเป็นเวลาห้าพันปี"); blog.setowner ("Daily"); BlogMapper BlogMapper = session.getMapper (BlogMapper.class); BlogMapper.InsertBlog (บล็อก); session.commit (); session.close (); } / *** สอบถามบันทึกเดียว* / @test โมฆะสาธารณะ testselectone () {sqlsession session = util.getSqlSessionFactory (). opensession (); BlogMapper BlogMapper = session.getMapper (BlogMapper.class); บล็อกบล็อก = blogmapper.selectblog (7); System.out.println (บล็อก); session.close (); } / *** แก้ไขระเบียน* / @Test โมฆะสาธารณะ TestUpDateBlog () {SQLSession Session = Util.GetSqlSessionFactory (). OpenSession (); บล็อกบล็อก = บล็อกใหม่ (); blog.setId (9); // id ของบล็อกที่จำเป็นต้องได้รับการแก้ไข blog.settitle ("chinese 2"); // แก้ไขชื่อบล็อก. setContent ("ใบหน้าสีเหลือง, ดวงตาสีดำ, รอยยิ้มไม่เปลี่ยนแปลง"); // แก้ไขเนื้อหาบล็อก ("วันที่ 2"); BlogMapper.updateBlog (บล็อก); session.commit (); session.close (); } / *** สอบถามบันทึกทั้งหมด* / @Test โมฆะสาธารณะ testSelectall () {SQLSession Session = util.getSqlSessionFactory (). OpenSession (); BlogMapper BlogMapper = session.getMapper (BlogMapper.class); รายการ <wlog> blogs = blogmapper.selectall (); สำหรับ (บล็อกบล็อก: บล็อก) System.out.println (บล็อก); session.close (); } / *** Query ฟัซซี่* / @Test โมฆะสาธารณะ TestFuzzyQuery () {SQLSession Session = Util.GetSqlSessionFactory (). OpenSession (); BlogMapper BlogMapper = session.getMapper (BlogMapper.class); String title = "China"; รายการ <wlog> blogs = blogmapper.fuzzyQuery (ชื่อ); สำหรับ (บล็อกบล็อก: บล็อก) System.out.println (บล็อก); session.close (); } / *** ลบระเบียน* / @Test โมฆะสาธารณะ TestDeleTeBlog () {SQLSession Session = Util.GetSqlSessionFactory (). OpenSession (); BlogMapper BlogMapper = session.getMapper (BlogMapper.class); BlogMapper.deleteBlog (10); session.commit (); session.close (); -
test3.java
แพ็คเกจ com.tiantian.mybatis.test; นำเข้า java.util.list; นำเข้า org.apache.ibatis.session.sqlsession; นำเข้า org.junit.test; นำเข้า com.tiantian.mybatis.model.blog; นำเข้า com.tiantian.mybatis.model.blogmapper; นำเข้า com.tiantian.mybatis.util.util; / ** * ชุดการดำเนินการนี้ดำเนินการโดยใช้อินเทอร์เฟซ Mapper * แต่คำสั่ง SQL ที่สอดคล้องกันนั้นถูกกำหนดไว้ในวิธีการที่สอดคล้องกันใน Mapper ผ่านคำอธิบายประกอบ * ที่สอดคล้องกัน * @author Andy * */ คลาสสาธารณะ test3 {/ ** * บันทึกใหม่ */ @test public public BlogMapper BlogMapper = session.getMapper (BlogMapper.class); บล็อกบล็อก = บล็อกใหม่ (); blog.settitle ("title2"); blog.setContent ("Content2"); blog.setowner ("เจ้าของ 2"); BlogMapper.InsertBlog2 (บล็อก); session.commit (); session.close (); } / *** ค้นหาบันทึกเดียว* / @Test โมฆะสาธารณะ testSelectone () {SQLSession Session = UTIL.GetSqlSessionFactory (). OpenSession (); BlogMapper BlogMapper = session.getMapper (BlogMapper.class); บล็อกบล็อก = blogmapper.selectblog2 (1); System.out.println (บล็อก); session.close (); } / *** ค้นหาหลายระเบียนส่งคืนผลลัพธ์เป็นคอลเลกชัน* / @test โมฆะสาธารณะ testselectall () {sqlsession session = util.getSqlSessionFactory (). opensession (); BlogMapper BlogMapper = session.getMapper (BlogMapper.class); รายการ <wlog> blogs = blogmapper.selectall2 (); สำหรับ (บล็อกบล็อก: บล็อก) System.out.println (บล็อก); session.close (); } / *** แก้ไขบันทึก* / @Test โมฆะสาธารณะ testUpDate () {SQLSESSION SESSION = UTIL.GETSQLSessionFactory (). OpenSession (); BlogMapper BlogMapper = session.getMapper (BlogMapper.class); บล็อกบล็อก = บล็อกใหม่ (); blog.setid (3); blog.settitle ("title3"); blog.setContent ("Content3"); blog.setowner ("เจ้าของ 3"); BlogMapper.updateBlog2 (บล็อก); session.commit (); session.close (); } / *** ลบระเบียน* / @Test โมฆะสาธารณะ TestDelete () {SQLSession Session = UTIL.GETSQLSessionFactory (). OpenSession (); BlogMapper BlogMapper = session.getMapper (BlogMapper.class); BlogMapper.deleteBlog2 (5); session.commit (); session.close (); } @Test โมฆะสาธารณะ TestFuzzYQuery () {SQLSession Session = util.getSqlSessionFactory (). OpenSession (); BlogMapper BlogMapper = session.getMapper (BlogMapper.class); รายการ <บล็อก> บล็อก = blogmapper.fuzzyQuery2 ("จีน"); สำหรับ (บล็อกบล็อก: บล็อก) System.out.println (บล็อก); session.close (); -คำสั่งการสร้างตารางที่สอดคล้องกัน:
สร้างตาราง `t_blog` (` id` int (11) ไม่ใช่ null auto_increment, `title` varchar (255) ค่าเริ่มต้น null,` content` varchar (255) ค่าเริ่มต้น null, `เจ้าของ 'varchar (50) ค่าเริ่มต้น, คีย์หลัก (` id`)))