MyBatis 输出参数

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();
}	

 

热门文章

优秀文章