รู้เบื้องต้นเกี่ยวกับ mybatis
MyBatis เป็นโครงการโอเพ่นซอร์สของ Apache ในปี 2010 โครงการนี้ถูกย้ายจาก Apache Software Foundation เป็น Google Code และถูกเปลี่ยนชื่อ MyBatis อพยพไปยัง GitHub ในเดือนพฤศจิกายน 2013
คำว่า Ibatis มาจากการรวมกันของ "อินเทอร์เน็ต" และ "abatis" และเป็นกรอบการคงอยู่ของจาวา Ibatis จัดเตรียมเฟรมเวิร์กเลเยอร์การคงอยู่รวมถึงแผนที่ SQL และวัตถุการเข้าถึงข้อมูล (DAO)
1. แพ็คเกจขวดที่จำเป็น
ที่นี่เราหารือเกี่ยวกับการใช้ mybatis แยกต่างหากเพียงแค่ใส่แพ็คเกจ mybatis-xxxjar
หากคุณใช้ Maven เพื่อสร้างโครงการคุณจะต้องใส่การกำหนดค่าต่อไปนี้ในการพึ่งพา pom.xml:
<Effercy> <myId> org.mybatis </groupId> mybatis </artifactid> <version> 3.2.2 </version> </dercendency>
ปัจจุบัน บริษัท ใช้ 3.2.2 และคุณสามารถใส่หมายเลขเวอร์ชันตามแพ็คเกจ JAR ของคุณเอง
หากคุณกำลังรวมเข้ากับเฟรมเวิร์กที่สอดคล้องกันคุณต้องใส่แพ็คเกจการรวม ตัวอย่างเช่น บริษัท ของเราใช้ mybatis เพื่อรวมเข้ากับฤดูใบไม้ผลิ
คุณต้องเพิ่มแพ็คเกจ mybatis-spring-xxx.jar และตัดสินใจตามสถานการณ์จริง แน่นอนแพ็คเกจขวดไดรเวอร์ไดรเวอร์ยังขาดไม่ได้
2. สร้าง SQLSessionFactory จาก XML
แอปพลิเคชั่นที่ใช้ MyBatis แต่ละตัวอยู่กึ่งกลางในอินสแตนซ์ของ SQLSessionFactory
ตัวอย่างของ SQLSessionFactory สามารถรับได้ผ่าน SQLSessionFactoryBuilder
SQLSessionFactoryBuilder สามารถสร้างอินสแตนซ์ของ SQLSessionFactory จากไฟล์การกำหนดค่า XML หรืออินสแตนซ์การกำหนดค่าล่วงหน้า
มันง่ายมากในการสร้างอินสแตนซ์ของ SQLSessionFactory จากไฟล์ XML ขอแนะนำให้ใช้ไฟล์ทรัพยากรภายใต้ classpath สำหรับการกำหนดค่า
อย่างไรก็ตามยังสามารถกำหนดค่าได้โดยใช้อินสแตนซ์อินพุตใด ๆ รวมถึงพา ธ ไฟล์ในรูปแบบของสตริงหรือพา ธ ไฟล์ในรูปแบบของไฟล์: // url
MyBatis มีคลาสเครื่องมือที่เรียกว่าทรัพยากรซึ่งมีวิธีการปฏิบัติบางอย่างที่ทำให้ง่ายต่อการโหลดไฟล์ทรัพยากรจาก ClassPath หรือสถานที่อื่น ๆ
ตัวอย่างเช่น:
String Resource = "MyBatis-config.xml"; inputStream คือ = resources.getResourceasstream (ทรัพยากร); SQLSessionFactory SQLSessionFactory = SQLSessionFactoryBuilder (). สร้าง (IS);
ไฟล์การกำหนดค่า XML (การกำหนดค่า XML) มีการตั้งค่าหลักสำหรับระบบ MyBatis รวมถึงแหล่งข้อมูลเพื่อรับอินสแตนซ์การเชื่อมต่อฐานข้อมูล (DataSource)
และผู้จัดการธุรกรรม (TransactionManager) ที่กำหนดขอบเขตและโหมดการควบคุมของการทำธุรกรรม ไฟล์การกำหนดค่าจะถูกกล่าวถึงในรายละเอียดในภายหลัง
ตัวอย่างเช่น:
<!-? XML เวอร์ชัน = "1.0" การเข้ารหัส = "UTF-8"?-> <การกำหนดค่า> <environment default = "การพัฒนา"> <environment id = "การพัฒนา"> <transactionManager type = "jdbc"> <dataSource type = "pooled"> value = "jdbc: mysql: //192.168.200.12: 3306/test_mybatis"> <property name = "username" value = "root"> <property name = "password" value = "root123"> ไฟล์ usermainmapper.xml usermainmapper.xml อยู่ในแพ็คเกจ com.lanhuigu.mybatis.map ดังนั้นทรัพยากรจึงถูกเขียนเป็น com/lanhuigu/mybatis/map/usermainmapper.xml-> <mapper resource = "com/lanhuigu/mybatis/mybatis
องค์ประกอบขององค์ประกอบสภาพแวดล้อมประกอบด้วยการกำหนดค่าของการจัดการธุรกรรมและการรวมการเชื่อมต่อ องค์ประกอบ Mappers มีชุดของ Mapper Mappers (ไฟล์ XML ของ mappers เหล่านี้มีรหัส SQL และข้อมูลนิยามการแมป)
3. รับ sqlsession จาก sqlsessionfactory
ตอนนี้เรามี SQLSessionFactory แล้วเราสามารถรับอินสแตนซ์ของ SQLSession จากมันได้ SQLSession มีวิธีการทั้งหมดที่จำเป็นในการเรียกใช้คำสั่ง SQL ไปยังฐานข้อมูลทั้งหมด
คุณสามารถเรียกใช้คำสั่ง SQL ที่แมปได้โดยตรงผ่านอินสแตนซ์ SQLSession ตัวอย่างเช่น:
sqlsessionfactory sqlsessionfactory = null; // xml สร้าง sqlsessionfactory อินสแตนซ์ของโรงงาน sqlsession session = null; // รับวัตถุ SQLSession จากอินสแตนซ์ SQLSessionFactory TRY {String Resource = "MyBatis-config.xml" SQLSessionFactoryBuilder (). build (IS); session = sqlSessionFactory.opensession (); ผู้ใช้ผู้ใช้ = เซสชัน SESSECTONE ("com.lanhuigu.mybatis.map.usermainmapper.queryusermainbyid", 1); ไม่มีปัญหาในการดำเนินการแมปด้วยวิธีนี้เรายังสามารถทำการแมปอย่างกระชับยิ่งขึ้น
ใช้อินเทอร์เฟซที่สามารถอธิบายพารามิเตอร์และค่าส่งคืนได้อย่างสมเหตุสมผลสำหรับคำสั่งที่กำหนด (ตัวอย่างเช่น usermainmapper.class)
ไม่เพียง แต่คุณสามารถเรียกใช้รหัสที่ชัดเจนขึ้นและปลอดภัยได้ในขณะนี้ แต่คุณไม่ต้องกังวลเกี่ยวกับตัวอักษรสตริงที่ผิดพลาดได้ง่ายและ casts ตัวอย่างเช่น:
SQLSession Session = SQLSessionFactory.opensession (); userMainMapper usermainMapper = session.getMapper (usermainmapper.class) ผู้ใช้ = usermainmapper .queryusermainbyid (1);
4. ตัวอย่าง
เป็นเรื่องง่ายที่จะสับสนเพียงแค่อ่าน แต่ไม่ได้ฝึกฝน ดูตัวอย่างและกลับไปอ่านเอกสารบางทีเอฟเฟกต์อาจจะดีกว่า
เตรียมแพ็คเกจ JAR:
mybatis-3.2.2.jar (mybatis)
mysql-connector-java-5.1.21.jar (ไดรเวอร์ฐานข้อมูล)
junit-4.4.jar (ทดสอบไม่ต้องการใช้ Junit นี้คุณสามารถใช้วิธีการหลักในการทดสอบได้)
โครงสร้างโครงการ:
ฐานข้อมูล:
สร้างตาราง `t_user_main` (` f_id` int (11) ไม่ใช่ null, `f_username` varchar (20) ค่าเริ่มต้น null,` f_age` int (3) null เริ่มต้น, คีย์หลัก (`f_id`)) เครื่องยนต์ = myisam เริ่มต้น charset = latin1;
การกำหนดค่า XML ของ mybatis-mybatis-config.xml:
<!-? XML เวอร์ชัน = "1.0" การเข้ารหัส = "UTF-8"?-> <การกำหนดค่า> <environment default = "การพัฒนา"> <environment id = "การพัฒนา"> <transactionManager type = "jdbc"> <dataSource type = "pooled"> value = "jdbc: mysql: //192.168.200.12: 3306/test_mybatis"> <property name = "username" value = "root"> <property name = "password" value = "root123"> ไฟล์ usermainmapper.xml usermainmapper.xml อยู่ในแพ็คเกจ com.lanhuigu.mybatis.map ดังนั้นทรัพยากรจึงถูกเขียนเป็น com/lanhuigu/mybatis/map/usermainmapper.xml-> <mapper resource = "com/lanhuigu/mybatis/mybatis
user.java:
แพ็คเกจ com.lanhuigu.mybatis.entity; นำเข้า java.io.serializable ผู้ใช้ระดับสาธารณะใช้ serializable {ส่วนตัวคงที่สุดท้ายสุดท้าย serialversionuid = -3412068097348759984L; id) {this.id = id;} public String getUserName () {return username;} โมฆะสาธารณะ setUserName (ชื่อผู้ใช้สตริง) {this.username = ชื่อผู้ใช้;} integer public () {return ens;usemainmapper.xml:
<!-? XML เวอร์ชัน = "1.0" การเข้ารหัส = "UTF-8"?-> <!-ระบุเนมสเปซที่ไม่ซ้ำกันสำหรับแผนที่นี้ ค่าของเนมสเปซถูกตั้งค่าตามปกติเป็นชื่อแพ็คเกจ + ลบชื่อไฟล์ของคำต่อท้ายของไฟล์แผนที่ SQL สิ่งนี้สามารถมั่นใจได้ว่ามูลค่าของเนมสเปซนั้นไม่ซ้ำกัน ตัวอย่างเช่น namespace = "com.lanhuigu.mybatis.map.usermainmapper" คือ com.lanhuigu.mybatis.map (ชื่อแพ็คเกจ) + usermainmapper (usermainmapper.xml ถูกลบออก)-> <!- เขียนคำสั่ง SQL แบบสอบถามในแท็กเลือกตั้งแอตทริบิวต์ ID ของแท็กเลือกเป็น queryusermainbyId ค่าแอตทริบิวต์ ID จะต้องไม่ซ้ำกันและแอตทริบิวต์พารามิเตอร์ไม่สามารถนำกลับมาใช้ใหม่เพื่อระบุประเภทพารามิเตอร์ที่ใช้ในการสืบค้น แอตทริบิวต์ ResultType ระบุประเภทชุดผลลัพธ์ที่ส่งคืนโดย Query ResultType = "com.lanhuigu.mybatis.entity.user" หมายถึงการห่อหุ้มผลลัพธ์การสืบค้นลงในวัตถุของคลาสผู้ใช้กลับไปที่คลาสผู้ใช้ซึ่งเป็นคลาสเอนทิตีที่สอดคล้องกับตารางผู้ใช้-> resultType = "com.lanhuigu.mybatis.entity.user"> เลือก f_id id, ชื่อผู้ใช้ f_username, อายุ f_age จาก t_user_main โดยที่ f_id = #{id} </select> </mapper>MyBatistest.java รหัสทดสอบ:
แพ็คเกจ com.lanhuigu.mybatis; นำเข้า java.io.ioexception; นำเข้า java.io.inputstream; นำเข้า org.apache.ibatis.io.resources; นำเข้า org.apache.ibatis.session.sqlsession; org.apache.ibatis.session.sqlsessionfactorybuilder นำเข้า org.junit.test; นำเข้า com.lanhuigu.mybatis.entity.user; คลาสสาธารณะ mybatistest {@testpublic void testmybatis () SQLSessionFactory อินสแตนซ์ SQLSESSION SESSION = NULL; // รับวัตถุ SQLSESSION TRY {//1.MYBATIS PATH PATH FILE FILE ซึ่งอยู่ภายใต้ ClassPath ซึ่งเทียบเท่ากับ String Resource = "MyBatis-config.xml"; // 2 อ่านไฟล์การกำหนดค่า mybatis และสร้างอินสแตนซ์ของโรงงาน SQLSessionFactory // ====== 2.1 ใช้ตัวโหลดคลาสเพื่อโหลดไฟล์การกำหนดค่า mybatis (มันยังโหลดไฟล์การแมปที่เกี่ยวข้อง) // inputstream คือ = mybatistest.class.getClassLoader () ใหม่ SQLSessionFactoryBuilder (). build (IS); // ====== 2.2 ใช้คลาสทรัพยากรที่จัดทำโดย MyBatis เพื่อโหลดไฟล์การกำหนดค่าของ MyBatis (ยังโหลดไฟล์การแมปที่เกี่ยวข้อง) // reader reader = resources.getResourceAsreader (ทรัพยากร); // สร้างโรงงาน SQLSessionFactory // SQLSessionFactory = ใหม่ SQLSessionFactoryBuilder () สร้าง (reader); // ====== 2.3 ใช้คลาสทรัพยากรที่จัดทำโดย mybatis เพื่อโหลดไฟล์วายาท SQLSessionFactoryBuilder (). สร้าง (IS); // 3 สร้าง sqlsessionsessions ที่สามารถเรียกใช้ SQL ในไฟล์การแมป = sqlsessionfactory.opensession ();/*** สตริงการระบุสำหรับการทำแผนที่ sql:* com.lanhuigu.mybatis.map.usermaInmapter. ค่าแอตทริบิวต์ของแท็กเลือกของไฟล์ usermainmapper.xml ผ่านค่าแอตทริบิวต์ ID ของแท็กที่เลือก * SQL ที่จะดำเนินการสามารถพบได้ผ่านการรวมกันของสองสิ่งนี้ */// ดำเนินการค้นหาและส่งคืนวัตถุผู้ใช้ที่ไม่ซ้ำกัน หมายเหตุ: "com.lanhuigu.mybatis.map.usermainmapper.queryusermainbyid" เป็นสตริงการระบุที่แมป SQL ผู้ใช้ผู้ใช้ = session.selectone ("com.lanhuigu.mybatis.map.usermainmapper.queryusermainbyid", 1); system.out.println (user.getUserName ());} ในที่สุด {session.close ();}}}}}}}เอาต์พุตคอนโซล:
สำหรับตัวอย่างข้างต้นในรหัสทดสอบ:
ผู้ใช้ผู้ใช้ = session.selectone ("com.lanhuigu.mybatis.map.usermainmapper.queryusermainbyid", 1); system.out.println (user.getUserName ());รหัสนี้เป็นรหัสที่ไม่พึงประสงค์มากหรือไม่? เราได้บอกว่ามีวิธีที่ตรงกว่า:
เพิ่มอินเทอร์เฟซการแมปไปยังแผนที่โครงสร้างโครงการ:
แพ็คเกจ com.lanhuigu.mybatis.map; นำเข้า com.lanhuigu.mybatis.entity.user; อินเทอร์เฟซสาธารณะ usermainmapper {ผู้ใช้สาธารณะ queryusermainbyid (int id);};ในเวลาเดียวกันแก้ไขรหัสทดสอบดังนี้:
แพ็คเกจ com.lanhuigu.mybatis; นำเข้า java.io.ioexception; นำเข้า java.io.inputstream; นำเข้า org.apache.ibatis.io.resources; นำเข้า org.apache.ibatis.session.sqlsession; org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.junit.Test;import com.lanhuigu.mybatis.entity.User;import com.lanhuigu.mybatis.map.UserMainMapper;public class MyBatisTest {@Testpublic void testMyBatis() throws IOException {SQLSessionFactory SQLSessionFactory = null; // xml สร้างอินสแตนซ์โรงงาน SQLSessionFactory เซสชัน SQLSession Session = null; // รับวัตถุ SQLSession ลอง {//1.MyBatis กำหนดค่าไฟล์ อ่านไฟล์การกำหนดค่า mybatis และสร้างอินสแตนซ์ของโรงงาน SQLSessionFactory // ====== 2.1 ใช้ตัวโหลดคลาสเพื่อโหลดไฟล์การกำหนดค่า mybatis (มันยังโหลดไฟล์การแมปที่เกี่ยวข้อง) // inputstream คือ = mybatistest.class.getClassLoader () ใหม่ SQLSessionFactoryBuilder (). build (IS); // ====== 2.2 ใช้คลาสทรัพยากรที่จัดทำโดย MyBatis เพื่อโหลดไฟล์การกำหนดค่าของ MyBatis (ยังโหลดไฟล์การแมปที่เกี่ยวข้อง) // reader reader = resources.getResourceAsreader (ทรัพยากร); // สร้างโรงงาน SQLSessionFactory // SQLSessionFactory = ใหม่ SQLSessionFactoryBuilder () สร้าง (reader); // ====== 2.3 ใช้คลาสทรัพยากรที่จัดทำโดย mybatis เพื่อโหลดไฟล์วายาท SQLSessionFactoryBuilder (). สร้าง (IS); // 3 สร้าง sqlsessionsessions ที่สามารถเรียกใช้ SQL ในไฟล์การแมป = sqlsessionfactory.opensession ();/*** สตริงการระบุสำหรับการทำแผนที่ sql:* com.lanhuigu.mybatis.map.usermaInmapter. ค่าแอตทริบิวต์ของแท็กเลือกของไฟล์ usermainmapper.xml ผ่านค่าแอตทริบิวต์ ID ของแท็กที่เลือก * SQL ที่จะดำเนินการสามารถพบได้ผ่านการรวมกันของสองสิ่งนี้ */// ดำเนินการค้นหาและส่งคืนวัตถุผู้ใช้ที่ไม่ซ้ำกัน Note: "com.lanhuigu.mybatis.map.UserMainMapper.queryUserMainById" is the identification string that maps SQL/*User user = session.selectOne("com.lanhuigu.mybatis.map.UserMainMapper.queryUserMainById", 1); System.out.println (user.getUserName ());*/usermainMapper usermainmapper = session.getMapper (usermainmapper.class) ผู้ใช้ผู้ใช้ = usermainmapper.queryusermainbyid (1); system.out.println (user.getusername (); แก้ไขส่วนการสืบค้นก่อนหน้านี้เป็น:
USERMAINMAPPER USERMAINMAPPER = SESSION.GETMAPPER (USERMAINMAPPER.CLASS); ผู้ใช้ผู้ใช้ = USERMAINMAPPER.QUERYUSERASERMAINBYID (1);
ใช้อินเทอร์เฟซที่สามารถอธิบายพารามิเตอร์และค่าส่งคืนได้อย่างสมเหตุสมผลสำหรับคำสั่งที่กำหนด (ตัวอย่างเช่น usermainmapper.class)
ไม่เพียง แต่คุณสามารถเรียกใช้รหัสที่ชัดเจนขึ้นและปลอดภัยได้ในขณะนี้ แต่คุณไม่ต้องกังวลเกี่ยวกับตัวอักษรสตริงที่ผิดพลาดได้ง่ายและ casts
เรียกใช้รหัสทดสอบและเอฟเฟกต์เหมือนกัน
ตำแหน่งอินเตอร์เฟส USERMAINMAPPER:
เนื่องจากเราได้เพิ่มอินเทอร์เฟซแล้ว mybatis-config.xml สามารถเปลี่ยนการกำหนดค่าสำหรับชิ้นส่วน Mapper และแมปไฟล์แพ็คเกจโดยตรงที่อินเตอร์เฟส usermainmapper ตั้งอยู่:
นั่นคือ
ปรับเปลี่ยน
การกำหนดค่าที่สมบูรณ์มีดังนี้และคุณสามารถตรวจสอบได้โดยเรียกใช้รหัสทดสอบ การปฏิบัตินี้ง่ายต่อการดูแลและจัดการแผนที่ในลักษณะที่เป็นเอกภาพ:
<!-? XML เวอร์ชัน = "1.0" การเข้ารหัส = "UTF-8"?-> <การกำหนดค่า> <environment default = "การพัฒนา"> <environment id = "การพัฒนา"> <transactionManager type = "jdbc"> <dataSource type = "pooled"> value = "jdbc: mysql: //192.168.200.12: 3306/test_mybatis"> <property name = "username" value = "root"> <property name = "password" value = "root123"> ไฟล์ usermainmapper.xml usermainmapper.xml ตั้งอยู่ในแพ็คเกจ com.lanhuigu.mybatis.map ดังนั้นทรัพยากรจึงถูกเขียนเป็น com/lanhuigu/mybatis/map/usermainmapper.xml-> <! name = "com.lanhuigu.mybatis.map"> </package> </amappers> </การกำหนดค่า>
ดังกล่าวข้างต้นเราจะเห็นได้ว่าไม่ว่าเราจะเล่นอย่างไร SQL ยังคงแมปใน usermainmapper.xml หรือไม่?
การใช้งานนี้ไม่ซ้ำกันหรือไม่? ฉันต้องใช้ XML หรือไม่?
ไม่แน่นอน หากรหัสของคุณด้านบนได้รับการแก้ไขและทดสอบเรียบร้อยแล้วให้ทำการปรับเปลี่ยนครั้งสุดท้าย
แทนที่จะใช้ usermainmapper.xml เพื่อใช้การแมปเราใช้คำอธิบายประกอบ Java เพื่อใช้การแมป
การปรับเปลี่ยนหลักคืออินเตอร์เฟส usermainmapper.java เพิ่มวิธีการใหม่ queryusermainbyidNew และการใช้คำอธิบายประกอบเพื่อใช้การแมป
MyBatis การแมปอินเทอร์เฟซที่แก้ไขด้วยตนเอง
แก้ไข USERMAINMAPPER.JAVA อินเทอร์เฟซ:
แพ็คเกจ com.lanhuigu.mybatis.map; นำเข้า org.apache.ibatis.annotations.param; นำเข้า org.apache.ibatis.annotations.select; นำเข้า com.lanhuigu.mybatis.entity.User; คำอธิบายประกอบ*/@select ("เลือก f_id id, f_username ชื่อผู้ใช้, อายุ f_age จาก t_user_main โดยที่ f_id = $ {id}") ผู้ใช้สาธารณะ queryusermainbyidnew (@param ("id") int id);}; รหัสทดสอบที่แก้ไขแล้วเรียกใช้ด้วยวิธีต่อไปนี้:
แพ็คเกจ com.lanhuigu.mybatis; นำเข้า java.io.ioexception; นำเข้า java.io.inputstream; นำเข้า org.apache.ibatis.io.resources; นำเข้า org.apache.ibatis.session.sqlsession; org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.junit.Test;import com.lanhuigu.mybatis.entity.User;import com.lanhuigu.mybatis.map.UserMainMapper;public class MyBatisTest {@Testpublic void testMyBatis() throws IOException {SQLSessionFactory SQLSessionFactory = null; // xml สร้างอินสแตนซ์โรงงาน SQLSessionFactory เซสชัน SQLSession Session = null; // รับวัตถุ SQLSession ลอง {//1.MyBatis กำหนดค่าไฟล์ อ่านไฟล์การกำหนดค่า mybatis และสร้างอินสแตนซ์ของโรงงาน SQLSessionFactory // ====== 2.1 ใช้ตัวโหลดคลาสเพื่อโหลดไฟล์การกำหนดค่า mybatis (มันยังโหลดไฟล์การแมปที่เกี่ยวข้อง) // inputstream คือ = mybatistest.class.getClassLoader () ใหม่ SQLSessionFactoryBuilder (). build (IS); // ====== 2.2 ใช้คลาสทรัพยากรที่จัดทำโดย MyBatis เพื่อโหลดไฟล์การกำหนดค่าของ MyBatis (ยังโหลดไฟล์การแมปที่เกี่ยวข้อง) // reader reader = resources.getResourceAsreader (ทรัพยากร); // สร้างโรงงาน SQLSessionFactory // SQLSessionFactory = ใหม่ SQLSessionFactoryBuilder () สร้าง (reader); // ====== 2.3 ใช้คลาสทรัพยากรที่จัดทำโดย mybatis เพื่อโหลดไฟล์วายาท SQLSessionFactoryBuilder (). สร้าง (IS); // 3 สร้าง sqlsessionsessions ที่สามารถเรียกใช้ SQL ในไฟล์การแมป = sqlsessionfactory.opensession ();/*** สตริงการระบุสำหรับการทำแผนที่ sql:* com.lanhuigu.mybatis.map.usermaInmapter. ค่าแอตทริบิวต์ของแท็กเลือกของไฟล์ usermainmapper.xml ผ่านค่าแอตทริบิวต์ ID ของแท็กที่เลือก * SQL ที่จะดำเนินการสามารถพบได้ผ่านการรวมกันของสองสิ่งนี้ */// ดำเนินการค้นหาและส่งคืนวัตถุผู้ใช้ที่ไม่ซ้ำกัน Note: "com.lanhuigu.mybatis.map.UserMainMapper.queryUserMainById" is the identification string that maps SQL/*User user = session.selectOne("com.lanhuigu.mybatis.map.UserMainMapper.queryUserMainById", 1); System.out.println (user.getUserName ());*//*usermainmapper usermainmapper = session.getMapper (usermainmapper.class) ผู้ใช้ = usermainmapper.queryusermainbyid (1); system.out.println session.getMapper (usermainmapper.class); ผู้ใช้ผู้ใช้ = usermainmapper.QueryUserMainByIdNew (1); System.out.println (user.getUserName ());} ในที่สุด {session.close ();}}}}}ข้างต้นเป็นคอลเล็กชั่นบทนำ MyBatis ที่สมบูรณ์ (2) แนะนำให้คุณรู้จักโดยบรรณาธิการ ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!