เมื่อเลือกการแมปใน mybatis ประเภทการส่งคืนสามารถใช้กับผลลัพธ์หรือผลลัพธ์ได้ ResultType แสดงถึงประเภทการส่งคืนโดยตรง (สอดคล้องกับเอนทิตีในวัตถุโมเดลของเรา) ในขณะที่ผลลัพธ์ map เป็นการอ้างอิงถึงผลลัพธ์ภายนอก (คีย์ที่ซ่อน-> ความสัมพันธ์ระหว่าง DB และโมเดลถูกกำหนดล่วงหน้า) แต่ผลลัพธ์และผลลัพธ์ไม่สามารถอยู่ได้ในเวลาเดียวกัน
เมื่อ MyBatis กำลังค้นหาการแมปในความเป็นจริงแต่ละแอตทริบิวต์แบบสอบถามจะถูกวางไว้ในแผนที่ที่สอดคล้องกันซึ่งคีย์คือชื่อแอตทริบิวต์และค่าคือค่าที่สอดคล้องกัน
①เมื่อแอตทริบิวต์ประเภทการส่งคืนที่ให้มาคือ ResultType, MyBatis จะนำคู่ค่าคีย์ออกมาในแผนที่และกำหนดให้กับแอตทริบิวต์ที่สอดคล้องกันของวัตถุที่ระบุโดย ResultType ดังนั้นในความเป็นจริงประเภทการกลับมาของแผนที่แบบสอบถามแต่ละตัวของ mybatis คือผลลัพธ์ map อย่างไรก็ตามเมื่อแอตทริบิวต์ประเภท Return ที่ให้มาคือ ResultType, MyBatis จะกำหนดค่าที่สอดคล้องกันโดยอัตโนมัติไปยังแอตทริบิวต์ของวัตถุที่ระบุโดย ResultType
②เมื่อประเภทการส่งคืนที่ให้มาคือผลลัพธ์ที่ได้เนื่องจากแผนที่ไม่สามารถเป็นตัวแทนของโมเดลโดเมนได้ดีมันจำเป็นต้องแปลงมันให้เป็นวัตถุที่เกี่ยวข้องเองซึ่งมักจะมีประโยชน์มากในการสืบค้นที่ซับซ้อน
นี่คือตัวอย่างเพื่อแสดงความแตกต่างระหว่างสอง:
แพ็คเกจ com.clark.model; นำเข้า java.util.date; สินค้าระดับสาธารณะ {ID จำนวนเต็มส่วนตัว; จำนวนเต็มส่วนตัว cateid; ชื่อสตริงส่วนตัว; ราคาสองเท่าส่วนตัว คำอธิบายสตริงส่วนตัว; จำนวนเต็มส่วนตัว orderno; วันที่ส่วนตัวอัปเดต; สินค้าสาธารณะ () {} สินค้าสาธารณะ (ID จำนวนเต็ม, จำนวนเต็ม cateid, ชื่อสตริง, ราคาสองราคา, คำอธิบายสตริง, จำนวนเต็มสั่งซื้อ, วันที่ updateTime) {super (); this.id = id; this.cateid = cateid; this.name = ชื่อ; this.price = ราคา; this.description = คำอธิบาย; this.orderno = orderno; this.UpDateTime = updateTime; } จำนวนเต็มสาธารณะ getId () {return id; } โมฆะสาธารณะ setId (ID จำนวนเต็ม) {this.id = id; } จำนวนเต็มสาธารณะ getCateId () {return cateid; } โมฆะสาธารณะ setCateID (จำนวนเต็ม cateID) {this.cateId = cateid; } สตริงสาธารณะ getName () {ชื่อคืน; } โมฆะสาธารณะ setName (ชื่อสตริง) {this.name = name; } สาธารณะ double getPrice () {ราคาคืน; } โมฆะสาธารณะ setPrice (ราคาสองเท่า) {this.price = ราคา; } สตริงสาธารณะ getDescription () {return คำอธิบาย; } โมฆะสาธารณะ setDescription (คำอธิบายสตริง) {this.description = คำอธิบาย; } จำนวนเต็มสาธารณะ getOrderNo () {return orderno; } โมฆะสาธารณะ setOrderNo (integer orderno) {this.orderNo = orderNo; } วันที่สาธารณะ getTimestamp () {return updateTime; } โมฆะสาธารณะ setTimestamp (วันที่ updateTime) {this.UpDateTime = updateTime; } @Override สตริงสาธารณะ toString () {return "[สินค้ารวม: id ="+this.getId ()+", name ="+this.getName ()+", orderno ="+this.getOrderNo ()+", cateid ="+this.getCateId () -<? XML เวอร์ชัน = "1.0" การเข้ารหัส = "UTF-8"?> <! การกำหนดค่า doctype สาธารณะ "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd" alias = "goods" type = "com.clark.model.goods"> < /typealias> < /typealiases> <environment default = "การพัฒนา"> <environment id = "การพัฒนา"> <transactionManager type = "jdbc" /> value = "jdbc: Oracle: Thin:@172.30.0.125: 1521: ORADB01"/> <ชื่อคุณสมบัติ = "ชื่อผู้ใช้" value = "การตั้งถิ่นฐาน"/> <property name = "password" value = "การชำระเงิน"/> </dataSource> </mappers> </การกำหนดค่า> </span>
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <! doctype mapper สาธารณะ "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" type = "com.clark.model.goods" id = "t_good"> <id column = "id" คุณสมบัติ = "id"/> <result column = "cate_id" คุณสมบัติ = "cateid"/> <result column = "name" property = "name"/> property = "orderno"/> <result column = "update_time" คุณสมบัติ = "updateTime"/> </resultmap> <!-ความแตกต่างระหว่างผลลัพธ์ map และ resultType-> <select id = "selectGoodById" parameterType = "int" adplate = "สินค้า" id = "selectallGoods" resultmap = "t_good"> เลือก ID, cate_id, ชื่อ, ราคา, คำอธิบาย, order_no, update_time จากสินค้า </select> <insert id = "insertGood" parameterType = "สินค้า"> ใส่ลงในสินค้า ค่า (#{id},#{cateid},#{ชื่อ},#{ราคา},#{คำอธิบาย},#{orderno},#{updateTime}) </insert> </mapper> แพ็คเกจ com.clark.mybatis; นำเข้า java.io.ioException; นำเข้า Java.io.Reader; นำเข้า java.util.list; นำเข้า org.apache.ibatis.io.resources; นำเข้า org.apache.ibatis.session.sqlsession; นำเข้า org.apache.ibatis.session.sqlsessionfactory; นำเข้า org.apache.ibatis.session.sqlsessionfactorybuilder; นำเข้า com.clark.model.goods; Public Class TestGoods {โมฆะสาธารณะคงที่หลัก (สตริง [] args) {string resource = "configuration.xml"; ลอง {reader reader = resources.getResourceAsreader (ทรัพยากร); SQLSessionFactory SessionFactory = ใหม่ SQLSessionFactoryBuilder (). build (reader); SQLSession Session = SessionFactory.opensession (); </span> <span style = "ตัวอักษรขนาด: 18px;"> <span style = "space white-space: pre"> </span> // สถานการณ์โดยใช้ผลลัพธ์ของสินค้า = (สินค้า) เซสชัน SESSION.SESECTONE ("Clark.SelectGoodById", 4); System.out.println (goods.toString ()); </span> [html] ดูการคัดลอกรหัสดูชิ้นส่วนที่ได้มาจากชิ้นส่วนโค้ดของฉันในรหัส <span style = "ตัวอักษรขนาด: 18px;"> <span style = "space สีขาว: pre"> </span> // scenarios สำหรับ (สินค้าสินค้า 2: gs) {system.out.println (goods2.toString ()); } // สินค้าสินค้า = สินค้าใหม่ (4, 12, "คลาร์ก", 12.30, "การทดสอบไม่เป็นไร", 5, วันที่ใหม่ ()); // session.insert ("clark.insertgood", สินค้า); // session.commit (); } catch (ioexception e) {e.printstacktrace (); -ผลลัพธ์ผลลัพธ์คือ:
<span style = "สี:#cc0000;"> [สินค้ารวม: id = 4, name = clark, orderno = null, cateid = null, updateTime = null] --- ผลลัพธ์โดยใช้ผลลัพธ์ </span> <span style = "สี:#33ff33;"> --- ผลลัพธ์
ข้างต้นเป็นการแนะนำความแตกต่างระหว่างผลลัพธ์และผลลัพธ์ใน mybatis แนะนำให้คุณรู้จัก ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!