2021-05-03 11:00  阅读(155)
文章分类:MyBatis 教程 文章标签:MyBatisMyBatis 教程
©  原文作者:一点教程 原文地址:http://www.yiidian.com/springmvc/

MyBatis的Dao映射配置有个属性叫resultType,该属性代表输出参数类型,对应Dao方法的方法返回值。MyBatis的输出参数类型包含以下几种:

  1. 基本类型
  2. Pojo类型
  3. ResultMap类型

1 基本类型

1.1 Dao方法

    
    public Long queryTotalCount();

1.2 Dao映射配置

    
    <!-- 统计记录数 -->
    <select id="queryTotalCount" resultType="long">
    	SELECT COUNT(*) FROM t_customer
    </select>

1.3 测试类

    
    /**
     * 输出映射 - 基本类型
     * 一点教程网 - www.yiidian.com
     */
    @Test
    public void test2(){
    	SqlSession sqlSession = MyBatisUtils.getSession();
    	//getMapper(): 返回指定接口的动态代理的实现类对象
    	CustomerDao dao = sqlSession.getMapper(CustomerDao.class);
    
    	Long count = dao.queryTotalCount();
    	System.out.println(count);
    	
    	sqlSession.commit();
    	sqlSession.close();
    }

2 Pojo类型

2.1 Dao方法

    
    public Customer queryCustomer(Integer id);

2.2 Dao映射配置

    
    <select id="queryCustomer" parameterType="int" resultType="com.yiidian.domain.Customer">
    	SELECT * FROM t_customer WHERE id=#{value}
    </select>

2.3 测试类

    
    /**
     * 输出映射 - Pojo类型
     * 一点教程网 - www.yiidian.com
     */
    @Test
    public void test2(){
    	SqlSession sqlSession = SessionUtils.getSession();
    	//getMapper(): 返回指定接口的动态代理的实现类对象
    	CustomerDao dao = sqlSession.getMapper(CustomerDao.class);
    
    	Customer c = dao.queryCustomer(1);
    	System.out.println(c);
    	
    	sqlSession.commit();
    	sqlSession.close();
    }

3 resultMap类型

resultMap用于解决表的字段名称和实体类的属性名称不一致的情况。

3.1 Dao方法

    
    public CustomerRM queryCustomerResultMap(Integer id);

3.2 Dao映射配置

    
    <!-- 定义ResultMap -->
    <resultMap type="com.yiidian.domain.CustomerRM" id="customerResultMap">
    	<!-- id:映射主键 -->
    	<id column="id" property="custId"/>
    	<result column="name" property="custName"/>
    	<result column="gender" property="custGender"/>
    	<result column="telephone" property="custTelephone"/>
    </resultMap>
    
    <select id="queryCustomerResultMap" parameterType="int" resultMap="customerResultMap">
    	SELECT * FROM t_customer WHERE id=#{value}
    </select>

3.3 Pojo对象

    
    package com.yiidian.domain;
    
    /**
     * 实体类
     * 一点教程网 - www.yiidian.com
     */
    public class CustomerRM {
        private Integer custId;
        private String custName;
        private String custGender;
        private String custTelephone;

3.4 测试类

    
    /**
     * 输出映射 - resultMap
     * 一点教程网 - www.yiidian.com
     */
    @Test
    public void test2(){
    	SqlSession sqlSession = SessionUtils.getSession();
    	//getMapper(): 返回指定接口的动态代理的实现类对象
    	CustomerDao dao = sqlSession.getMapper(CustomerDao.class);
    
    	CustomerRM c = dao.queryCustomerResultMap(1);
    	System.out.println(c);
    	
    	sqlSession.commit();
    	sqlSession.close();
    }	
点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> MyBatis 输出参数
上一篇
MyBatis 输入参数
下一篇
MyBatis 动态SQL