Saat memilih pemetaan di mybatis, tipe pengembalian dapat digunakan dengan HRESSTYPE atau RACKMAP. HasilType secara langsung mewakili tipe pengembalian (sesuai dengan entitas dalam objek model kami), sedangkan RACKMAP adalah referensi ke Hasil EksternalMap (Kunci Tersembunyi-> Hubungan Nilai antara DB dan Model didefinisikan di muka), tetapi HRESSTYPE dan RACKMAP tidak dapat ada pada waktu yang sama.
Ketika mybatis memetakan pemetaan, pada kenyataannya, setiap kueri atribut ditempatkan di peta yang sesuai, di mana kunci adalah nama atribut dan nilainya adalah nilai yang sesuai.
① Ketika atribut tipe pengembalian yang disediakan adalah HasilType, MyBatis akan mengeluarkan pasangan nilai kunci di peta dan menetapkannya ke atribut yang sesuai dari objek yang ditentukan oleh HasilType. Jadi pada kenyataannya, jenis pengembalian dari setiap peta kueri mybatis adalah hasil. Namun, ketika atribut tipe pengembalian yang disediakan adalah HasilType, MyBatis secara otomatis menetapkan nilai yang sesuai ke atribut objek yang ditentukan oleh HasilType.
② Ketika tipe pengembalian yang disediakan adalah HasilMap, karena peta tidak dapat mewakili model domain dengan baik, ia perlu mengubahnya lebih jauh menjadi objek yang sesuai itu sendiri, yang seringkali sangat berguna dalam kueri kompleks.
Berikut adalah contoh untuk menggambarkan perbedaan antara keduanya:
paket com.clark.model; impor java.util.date; barang kelas publik {private integer ID; Private Integer Cateid; nama string pribadi; harga ganda pribadi; deskripsi string pribadi; Pesanan integer pribadi; pembaruan tanggal pribadi; barang publik () {} barang publik (ID integer, integer cateid, nama string, harga ganda, deskripsi string, integer orderno, tanggal updateTime) {super (); this.id = id; this.cateId = CateID; this.name = name; this.price = harga; this.description = description; this.ordno = orderno; this.upDateTime = updateTime; } public integer getId () {return id; } public void setid (integer id) {this.id = id; } public integer getCateId () {return cateid; } public void setCateID (integer cateid) {this.cateId = cateId; } public string getName () {return name; } public void setName (name string) {this.name = name; } public double getPrice () {harga kembali; } public void setPrice (harga ganda) {this.price = harga; } public String getDescription () {return description; } public void setDescription (deskripsi string) {this.description = description; } public integer getORDNO () {return orderno; } public void setOrdERNO (integer orderno) {this.orderno = orderno; } tanggal publik getTimestamp () {return updateTime; } public void setTimestamp (date updateTime) {this.upDateTime = updateTime; } @Override Public String ToString () {return "[Barang termasuk: id ="+this.getId ()+", name ="+this.getName ()+", orderno ="+this.getOrderNo ()+", cateid ="+this.getCateId ()+", UpdateTime ="+this.getmes }}<? Xml Version = "1.0" encoding = "UTF-8"?> <! Doctype Configuration Public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <sonfiguration> <pypyes>-typealies <! Alias = "barang" type = "com.clark.model.goods"> </yypealias> </yypealiases> <lingkungan default = "pengembangan"> <lingkungan id = "pengembangan"> <transactionManager type = "jdbc" /> <datasource type = "pooled"> <properti name = "or" oracle. name="url" value="jdbc:oracle:thin:@172.30.0.125:1521:oradb01" /> <property name="username" value="settlement" /> <property name="password" value="settlement" /> </dataSource> </environment> </environments> <mappers> <mapper resource="com/clark/model/goodsMapper.xml" /> </Mappers> </ Configuration> </span>
<? Xml Version = "1.0" encoding = "utf-8"?> <! Doctype mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper napper = "cltd =" cltd "> cltd/cltd =" mapper "> <mapper napper =" mapper "> type = "com.clark.model.goods" id = "t_good"> <id kolom = "id" properti = "id"/> <hasil kolom = "cate_id" properti = "cateid"/> <hasil kolom = "name" properti = "name"/> <hasil kolom = "Properti" Properti = "" Harga "/> <Name =" Deskripsi = "Deskripsi" Deskripsi "Deskripsi" Deskripsi "DESKOBER" = "DESCRIOM" DESCRIOM "DESCRIOM" DESCRIOM "DESCRIOM" DESCRIOM "DESCRIOM" DESKRIOM "/DESKRIPTION =" DESKRIPLE "/DESKRIPSI"/DESKRIPSI "DRIPOR =" properti = "orderno"/> <colom hasil = "update_time" properti = "updateTime"/> </resultMap> <!-Perbedaan antara resultMap dan hasil hasil-> <pilih id = "selectgoodbyid" parameTerpe = "int" hasil hasil = barang "> iD, Cate_ID, name, name, price, order_no, order, id = "selectAllgoods" resultMap = "t_good"> pilih id, cate_id, name, harga, description, order_no, update_time dari barang </pilih> <masukkan id = "insertGood" parameTerType = "barang"> masukkan ke dalam barang (id, cate_id, nama, harga, deskripsi, order_no, update_time) values (#{id},#{CateId},#{name},#{price},#{description},#{orderno},#{updateTime}) </sert> </mapper> paket com.clark.mybatis; impor java.io.ioException; impor java.io.reader; impor java.util.list; impor org.apache.ibatis.io.Resources; Impor org.apache.Ibatis.Session.SQLSession; impor org.apache.ibatis.Session.SQLSessionFactory; impor org.apache.ibatis.Session.SQLSessionFactoryBuilder; impor com.clark.model.goods; Public Class TestGoods {public static void main (string [] args) {string resource = "configuration.xml"; coba {pembaca pembaca = resource.getResourceasReader (sumber daya); SQLSessionFactory sessionFactory = SQLSessionFactoryBuilder baru (). Build (pembaca); SQLSession session = sessionFactory.opensession (); </span> <span style = "font-size: 18px;"> <span style = "white-space: pre"> </span> // skenario menggunakan hasil hancur = (barang) session.selectone ("clark.selectgoodbyId", 4); System.out.println (goods.toString ()); </span> [html] Lihat Polos Copy View Fragmen Kode yang Diturunkan dari Fragmen Kode Saya Pada Kode <Span Style = "Font-size: 18px;"> <span style = "White-Space: Pre"> </span> // skenario menggunakan hasil Hasil <glays> gs = gs = Sesion. untuk (barang barang2: gs) {system.out.println (barang2.tostring ()); } // barang barang = barang baru (4, 12, "clark", 12.30, "tes ok", 5, tanggal baru ()); // session.insert ("clark.insertgood", barang); // session.commit (); } catch (ioException e) {e.printstacktrace (); }}}Output hasilnya adalah:
<span style = "Color:#cc0000;"> [Barang termasuk: id = 4, name = clark, orderno = null, cateid = null, updateTime = null] --- hasil menggunakan resultType </span> <span style = "color:#33ff33;"> --- Hasil Menggunakan hasil Hasil ------------------------------------------------- </span>
Di atas adalah pengantar perbedaan antara HRESSType dan RACKMAP di MyBatis yang diperkenalkan kepada Anda. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!