关闭

Mybatis 入门之resultMap与resultType讲解实例

117人阅读 评论(0) 收藏 举报
分类:

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. }  
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:103618次
    • 积分:1368
    • 等级:
    • 排名:千里之外
    • 原创:19篇
    • 转载:211篇
    • 译文:0篇
    • 评论:12条
    最新评论