MyBatis 输出参数
MyBatis的Dao映射配置有个属性叫resultType
,该属性代表输出参数类型,对应Dao方法的方法返回值。MyBatis的输出参数类型包含以下几种:
- 基本类型
- Pojo类型
- 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();
}
热门文章
优秀文章