Mybatis 入门之resultMap与resultType讲解实例

转载 2016年05月30日 19:52:40

resultMap:适合使用返回值是自定义实体类的情况

resultType:适合使用返回值得数据类型是非自定义的,即jdk的提供的类型

resultMap : 

type:映射实体类的数据类型

id:resultMap的唯一标识

column:库表的字段名

property:实体类里的属性名


配置映射文件:

[java] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE mapper  
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
  5. <!-- namespace:当前库表映射文件的命名空间,唯一的不能重复 -->  
  6. <mapper namespace="com.hao947.sql.mapper.PersonMapper">  
  7.     <!-- type:映射实体类的数据类型 id:resultMap的唯一标识 -->  
  8.     <resultMap type="person" id="BaseResultMap">  
  9.         <!-- column:库表的字段名 property:实体类里的属性名 -->  
  10.         <id column="person_id" property="personId" />  
  11.         <result column="name" property="name" />  
  12.         <result column="gender" property="gender" />  
  13.         <result column="person_addr" property="personAddr" />  
  14.         <result column="birthday" property="birthday" />  
  15.     </resultMap>  
  16.     <!--id:当前sql的唯一标识  
  17.          parameterType:输入参数的数据类型   
  18.          resultType:返回值的数据类型   
  19.          #{}:用来接受参数的,如果是传递一个参数#{id}内容任意,如果是多个参数就有一定的规则,采用的是预编译的形式select   
  20.         * from person p where p.id = ? ,安全性很高 -->  
  21.   
  22.     <!-- sql语句返回值类型使用resultMap -->  
  23.     <select id="selectPersonById" parameterType="java.lang.Integer"  
  24.         resultMap="BaseResultMap">  
  25.         select * from person p where p.person_id = #{id}  
  26.     </select>  
  27.     <!-- resultMap:适合使用返回值是自定义实体类的情况   
  28.     resultType:适合使用返回值的数据类型是非自定义的,即jdk的提供的类型 -->  
  29.     <select id="selectPersonCount" resultType="java.lang.Integer">  
  30.         select count(*) from  
  31.         person  
  32.     </select>  
  33.   
  34.     <select id="selectPersonByIdWithMap" parameterType="java.lang.Integer"  
  35.         resultType="java.util.Map">  
  36.         select * from person p where p.person_id= #{id}  
  37.         </select>  
  38.   
  39. </mapper>  


[html] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1.   

实体类Person.java

[java] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. <pre name="code" class="java">package com.hao947.model;  
  2. import java.util.Date;  
  3. public class Person {  
  4.     private Integer personId;  
  5.     private String name;  
  6.     private Integer gender;  
  7.     private String personAddr;  
  8.     private Date birthday;  
  9.     @Override  
  10.     public String toString() {  
  11.         return "Person [personId=" + personId + ", name=" + name + ", gender="  
  12.                 + gender + ", personAddr=" + personAddr + ", birthday="  
  13.                 + birthday + "]";  
  14.     }  
  15. }  


测试类

[java] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. public class PersonTest {  
  2.     SqlSessionFactory sqlSessionFactory;  
  3.     @Before  
  4.     public void setUp() throws Exception {  
  5.         // 读取资源流  
  6.         InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");  
  7.         // 初始化session工厂  
  8.         sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);  
  9.     }  
  10.   
  11.       
  12.   
  13.     @Test  
  14.     public void selectPersonById() {  
  15.         // 创建一个sqlsession  
  16.         SqlSession session = sqlSessionFactory.openSession();  
  17.         try {  
  18.             Person p = session.selectOne(  
  19.                     "com.hao947.sql.mapper.PersonMapper.selectPersonById"1);  
  20.             System.out.println(p);  
  21.         } finally {  
  22.             session.close();  
  23.         }  
  24.     }  
  25.     @Test  
  26.     public void selectPersonCount() {  
  27.         // 创建一个sqlsession  
  28.         SqlSession session = sqlSessionFactory.openSession();  
  29.         try {  
  30.             Integer p = session.selectOne(  
  31.                     "com.hao947.sql.mapper.PersonMapper.selectPersonCount");  
  32.             System.out.println(p);  
  33.         } finally {  
  34.             session.close();  
  35.         }  
  36.     }  
  37.     @Test  
  38.     public void selectPersonByIdWithMap() {  
  39.         // 创建一个sqlsession  
  40.         SqlSession session = sqlSessionFactory.openSession();  
  41.         try {  
  42.             Map<String ,Object> map = session.selectOne(  
  43.                     "com.hao947.sql.mapper.PersonMapper.selectPersonByIdWithMap",1);  
  44.             System.out.println(map);  
  45.         } finally {  
  46.             session.close();  
  47.         }  
  48.     }  
  49. }  

后台(40)——MyBatis输出映射resultType以及resultMap

我们知道:MyBatis通过resultType对sql的输出参数进行定义,参数的类型可以是:基本类型、HashMap、pojo。在此分别介绍为resultType传入三种类型的不同处理方式。...
  • lfdfhl
  • lfdfhl
  • 2017年03月18日 22:29
  • 951

Mybatis中的resultType和resultMap的使用及区别

一、概述 MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部R...

Mybatis中的resultType和resultMap 区别

Mybatis中的resultType和resultMap  是mybatis 中返回类型一定用到的,但不会同时出现。mybatis返回类型肯定是map结构,然后根据返回类型是map还是对象类型...

Mybatis的查询操作之resultType和resultMap

resultType和resultMap只能有一个成立,resultMap解决复杂查询是的映射问题。比如:列名和对象属性名不一致时可以使用resultMap来配置;还有查询的对象中包含其他的对象等。M...

Mybatis中的resultType和resultMap的区别

一、概述 MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部Re...

MyBatis学习笔记(五)输入(parameterType)与输出(resultType、resultMap)映射

转载自:输入(parameterType)与输出(resultType、resultMap)映射在MyBatis中,我们通过parameterType完成输入映射(指将值映射到sql语句的占位符中,值...

【Mybatis框架】输出映射-resultType与resultMap

输出映射 接下来说说有关Mapper.xml配置文件中查询标签中关于返回值类型resultType与resultMap的一些内容 1.resultType 使用resultType进行输出映...

【MyBatis学习07】输出类型resultType及输出参数映射resultMap

使用mybatis操作时,对于SQL语句返回结果的处理通常有两种方式,一种是resultType,另一种是resultMap。 resultType:如果要填充的pojo属性和数据库列名完全一致,可...
  • soonfly
  • soonfly
  • 2017年03月19日 19:44
  • 1140

MyBatis中关于resultType和resultMap的区别

MyBatis中关于resultType和resultMap的区别

【Mybatis框架】输出映射-resultType与resultMap

输出映射 接下来说说有关Mapper.xml配置文件中查询标签中关于返回值类型resultType与resultMap的一些内容 1.resultType 使用resultType进行输出映射,只有...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Mybatis 入门之resultMap与resultType讲解实例
举报原因:
原因补充:

(最多只允许输入30个字)