Mybatis 入门之resultMap与resultType讲解实例

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

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

resultMap : 

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

id:resultMap的唯一标识

column:库表的字段名

property:实体类里的属性名


配置映射文件:

  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>  



实体类Person.java
  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. }  

测试类
  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. }  

posted on 2016-06-05 17:39  菜鸟Z  阅读(342)  评论(0编辑  收藏  举报

导航