Ao selecionar mapeamento em mybatis, o tipo de retorno pode ser usado com o resultadoType ou o resultado. ResultType representa diretamente o tipo de retorno (correspondente à entidade em nosso objeto modelo), enquanto o ResultMap é uma referência ao MAP de resultado externo (a chave oculta-> o relacionamento de valor entre db e modelo é definido antecipadamente), mas o resultadoType e o ResultMap não podem existir no mesmo horário.
Quando o Mybatis está consultando mapeamento, de fato, cada consulta de atributo é colocada em um mapa correspondente, onde a chave é o nome do atributo e o valor é o seu valor correspondente.
① Quando o atributo de tipo de retorno fornecido é o resultado, o MyBatis retira os pares do valor da chave no mapa e os atribui aos atributos correspondentes do objeto especificado pelo resultado. Então, de fato, o tipo de retorno de cada mapa de consulta de Mybatis é o resultado do resultado. No entanto, quando o atributo de tipo de retorno fornecido é resultado, o MyBatis atribui automaticamente o valor correspondente aos atributos do objeto especificado pelo resultado.
② Quando o tipo de retorno fornecido é resultante, porque o mapa não pode representar bem o modelo de domínio, ele precisa convertê -lo ainda mais no próprio objeto correspondente, o que geralmente é muito útil em consultas complexas.
Aqui está um exemplo para ilustrar a diferença entre os dois:
pacote com.clark.model; importar java.util.date; Public classe bens {ID inteiro privado; Inteiro privado cateid; nome de string privado; preço duplo privado; Descrição de String Private; ordem inteira privada não; Data privada UpdateTime; public bens () {} bens públicos (ID inteiro, cateid inteiro, nome da string, preço duplo, descrição da string, ordem inteira, updateTETime) {super (); this.id = id; this.cateId = cateid; this.name = nome; this.price = preço; this.Description = Descrição; this.OrderNo = OrderNo; this.UpDateTime = UpdateTime; } public integer getId () {return id; } public void SetId (ID inteiro) {this.id = id; } public integer getCateId () {return cateid; } public void setCateId (Inteiro cateid) {this.cateId = cateID; } public string getName () {return name; } public void setName (nome da string) {this.name = name; } public Double getPrice () {Return Price; } public void setPrice (preço duplo) {this.price = price; } public string getDescription () {return description; } public void SetDescription (String description) {this.Description = Descrição; } public integer getOrderNo () {return orderno; } public void SetorderNo (Inteiro OrderNo) {this.orderNo = OrderNo; } public date gettimestamp () {return updateTime; } public void setTimestamp (data updateTime) {this.UpDateTime = UpdateTime; } @Override public string tostring () {return "[bens incluem: id ="+this.getId ()+", name ="+this.getName ()+", orderno ="+this.getorderno ()+", cateid ="+this.getcateId ()+", updatime =" +.timestern] }}<?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"> <configuration> <typeAliases> <!-- give a alias for model --> <typeAlias alias = "bens" type = "com.clark.model.goods"> < /typeAlias> < /typeAliases> <ambientes default = "desenvolvimento"> <ambiente id = "desenvolvimento"> <transação name = "url" value = "jdbc: oracle: thin:@172.30.0.125: 1521: oradb01"/> <name da propriedade = "nome de usuário" value = "assentamento"/> <names (clandester "e" mhaping "e" Settlement "/" Sourmerce./"/clautesl", /> </appers> </figuration> </span>
<? xml versão = "1.0" coding = "utf-8"?> <! type = "com.clark.model.goods" id = "t_good"> <id column = "id" propriedade = "id"/> <resultado column = "cate_id" property = "cateid"/> <resultado column = "name" propriedade "name"/> <resultado = "" preço "/" price "/> <cul = <resultado" "=" name "/> <Result =" "" "/" price "/> <> <resultado" Property = "OrderNo"/> <resultado column = "update_time" Property = "updateTime"/> </resultMap> <!-A diferença entre ResultMap e ResultType-> <Select ID = "SelectGoodById" ParameterType = "int" ResultType = "Goods"> ID, cate_id, nome, preço, preço, preço, descrição = "int" resultype = "bens">, cate_id ", preço, preço, preço, descrição =" Int "ResultType =" BOTS "> ID, cate_id, nome, preço, preço, preço, descrição =" Int "ResultType =" Bens ">, cate_id, nome, preço, preço, preço, preço, =" description) <select id = "selectAllGoods" resultMap = "t_good"> selecione ID, cate_id, nome, preço, descrição, order_no, update_time de bens </leclect> <insert id = "insertgood" parametertype = "bens"> inserir em bens (id, cate_id, nome ", descrição, Ordem_No, valores (#{id},#{cateId},#{name},#{price},#{description},#{orderno},#{updateTime}) </insert> </mapper> pacote com.clark.mybatis; importar java.io.ioException; importar java.io.Reader; importar java.util.list; importar org.apache.ibatis.io.resources; importar org.apache.ibatis.session.SQLSession; importar org.apache.ibatis.session.sqlSessionFactory; importar org.apache.ibatis.session.sqlSessionFactoryBuilder; importar com.clark.model.goods; public class Testgoods {public static void main (string [] args) {string Resource = "Configuration.xml"; tente {leitor leitor = Resources.getResourCeasReader (recurso); SQLSessionFactory SessionFactory = new SQLSessionFactoryBuilder (). Build (leitor); SQLSession Session = SessionFactory.opensssion (); </span> <span style = "font-size: 18px;"> <span style = "espaço branco: pré"> </span> // cenários usando resultype bens = (bens) session.selectone ("Clark.selectgoodbyId", 4); System.out.println (Goods.ToString ()); </span> [html] Exibir fragmentos de código de cópia simples de cópia derivados dos meus fragmentos de código no código <span style = "font-size: 18px;"> <span style = "space" space: pré "> </span> // cenários de resultado (span> gs =..selt". for (bens bens2: gs) {system.out.println (bens2.toString ()); } // bens de mercadorias = novos bens (4, 12, "Clark", 12,30, "teste está ok", 5, nova data ()); // session.insert ("Clark.insertgood", mercadorias); // session.commit (); } catch (ioexception e) {e.printStackTrace (); }}}A saída do resultado é:
<span style = "cor:#cc0000;"> [bens incluem: id = 4, nome = Clark, orderno = null, cateid = null, updateTime = null] --- resultado usando o resultado do resultado </span> <span style = "cor:#33ff33;
O exposto acima é uma introdução à diferença entre o resultado e o resultado resulta em mybatis apresentado a você. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!