При выборе отображения в mybatis тип возврата может использоваться с ResultType или ResultMap. ResultType непосредственно представляет тип возврата (соответствующий объекту в нашем объекте модели), в то время как ResultMap-это ссылка на внешнюю карту результата (скрытая связь-> значение значения между DB и моделью определена заранее), но ResultType и ResultMap не могут существовать в одно и то же время.
Когда Mybatis запрашивает отображение, на самом деле, каждый запрос атрибута помещается в соответствующую карту, где ключ - имя атрибута, а значение - его соответствующее значение.
① Когда предоставленный атрибут типа возврата является ResultType, Mybatis извлечет пары значений ключей на карте и назначит их соответствующим атрибутам объекта, указанного в результате ResultType. Таким образом, фактически, возвращается тип каждой карты запросов Mybatis, является ResultMap. Однако, когда предоставляемый атрибут типа возврата является ResultType, Mybatis автоматически присваивает соответствующее значение атрибутам объекта, указанного в результате ResultType.
② Когда предоставляемый тип возврата является ResultMap, поскольку карта не может хорошо представлять модель домена, ей необходимо дополнительно преобразовать ее в сам объект, который часто очень полезен в сложных запросах.
Вот пример, чтобы проиллюстрировать разницу между ними:
пакет com.clark.model; импортировать java.util.date; Общедоступный класс товары {частное целочисленное идентификатор; частное целое число катеид; Приватное название строки; частная двойная цена; частная строка описание; частное целое число. частная дата обновления; Public Goods () {} Public Goods (INTEGER ID, Integer CateID, название строки, двойная цена, строка описание, целое число заказов, дата UpdateTime) {super (); this.id = id; this.cateid = cateid; this.name = name; this.price = цена; this.description = описание; this.orderno = 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 (string name) {this.name = name; } public Double GetPrice () {return Price; } public void setPrice (двойная цена) {this.price = цена; } public String getDescription () {return description; } public void setDescription (строка описание) {this.description = description; } public integer getOrderno () {return orderno; } public void setOrderNo (integer orderno) {this.orderno = orderno; } public Date GetTimestAmp () {return updateTime; } public void setTimeStamp (date updateTime) {this.updateTime = updateTime; } @Override public String toString () {return "[Товар включает в себя: id ="+this.getId ()+", name ="+this.getName ()+", orderno ="+this.getorderno ()+", cateid ="+this.getCateid ()+", UpdateTime ="+this.getTimestAmp ()+"]"; }}<? xml version = "1.0" Encoding = "UTF-8"?> <! Конфигурация doctype public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <cistinties> <typealies> <!------ Alias = "Goald" type = "com.clark.model.goods"> < /typealias> < /typealiases> <среда default = "Разработка"> <среда идентификатор = "разработка"> <transactionManager = "jdbc" /> <dataSource type = "postred"> name = "driver" value = "oracle.jdbc.driver value = "jdbc: Oracle: thin:@172.30.0.125: 1521: oradb01"/> <name = "inemance =" username "value =" settlement "/> <name =" password "value =" settlement "/> </dataSource> </ervening> </ervinements> <mappers> <mapper resource =" com/clark/model/goodsmm. </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"> <mapperspace = "clark" type = "com.clark.model.goods" id = "t_good"> <id column = "id" property = "id"/> <result column = "cate_id" property = "cateid"/> <result column = "name" property = "name"/> <result column = "price" price "/> <result column =" description "vocud ="/> <result column obless orport '/"result =" description "="/> <result ublos_ rescount_ "/" result ". Property = "orderno"/> <result column = "update_time" Property = "updateTememe"/> </resultMap> <!-Разница между ResultMap и ResultyPe-> <select id = "selectgoodbyid" parametertype = "int" revelodtype = "Goals"> Select ID, cate_id, name, price, description_no, update_teme_tem. id = "selectallgoods" resultMap = "t_good"> select id, cate_id, имя, цена, описание, order_no, update_time из товаров </select> <insert id = "insertgood" parametertype = "Товар"> вставьте в товары (id, cate_id, имя, цена, описание, order_no, update_tume) values (#{id},#{cateid},#{name},#{цена},#{description},#{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; открытый класс testgoods {public static void main (string [] args) {string resource = "configuration.xml"; try {reader reader = resources.getresourceasreader (resource); SQLSessionFactory SessionFactory = new SQLSessionFactoryBuilder (). Build (Reader); SQLSession Session = sessionFactory.Opensession (); </span> <span style = "font-size: 18px;"> <span style = "Белое пространство: pre"> </span> // сценарии с использованием structype Goods = (Goals) Session.selectone ("clark.selectgoodbyid", 4); System.out.println (goods.tostring ()); </span> [html] Просмотреть простые копии фрагменты кода, полученные из моих фрагментов кода на коде <span style = "font-size: 18px;"> <span style = "Белое пространство: pre"> </span> // сценарии с использованием resultmap sirect> gsselectlectlectlectlect.shiplectalleclectlectlect. для (товары 2: gs) {System.out.println (Good2.toString ()); } // Товары = новые товары (4, 12, "Кларк", 12.30, "Тест в порядке", 5, New Date ()); // session.insert ("clark.insertgood", товар); // session.commit (); } catch (ioException e) {e.printstackTrace (); }}}Результат вывод:
<span style = "color:#cc0000;"> [Товар включает в себя: id = 4, name = clark, orderno = null, cateid = null, updateTime = null] --- Результат с использованием resultype </span> <span style = "color:#33ff33;
Выше приведено введение в разницу между результатом и ResultMap в Mybatis, введенном вам. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!