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

  • 相关阅读:
    Vim的分屏功能 | 酷壳 CoolShell.cn
    分享:Hadoop的Python框架指南
    KMP算法之另类图示分析
    C#cookie自动获取工具发布
    tmux Tutorial Split Terminal Windows Easily
    爱上MVC3~将系统的路由设置抽象成对象吧
    DDD~microsoft NLayerApp项目中的层次结构图
    不说技术~难得糊涂
    DDD~基础设施层
    基础才是重中之重~开发人员应用学会用throw
  • 原文地址:https://www.cnblogs.com/archermeng/p/7537408.html
Copyright © 2020-2023  润新知