MyBatis应用开发(12)映射的结果映射resultMap

1.1.1. 运resultMap映射字段和特性

MyBatis的resultMap可以一本万利之概念字段和性之间的照射关系,字段和总体性之名号可以等效,也可不一样。

<!-- personResultMap:将t_person的记录的字段映射到SomeBean的属性上 -->

<resultMap type="com.test.mybatis3.pojo.SomeBean" id="personResultMap">

<id property="person_id" column="id" />

<result property="person_name" column="name" />

<result property="person_status" column="status" />

</resultMap>

 

 

 

PersonMapper接口的相应措施定义如下:

/**

 * 使用personResultMap将t_person的记录映射到SomeBean上。

 * @return

 * @throws Exception

 */

List<SomeBean>  findPersonByResultMap() throws Exception;

 

 

SomeBean类的定义如下:

/**   

* @Title: SomeBean.java

* @Package com.test.mybatis3.pojo

* @Description:

* @author http://www.cnblogs.com/coe2coe/

* @date 2017年4月15日 下午11:24:05

* @version V1.0   

*/

package com.test.mybatis3.pojo;



/**

* @ClassName: SomeBean

* @Description:

* @author http://www.cnblogs.com/coe2coe/

* @date 2017年4月15日 下午11:24:05

*  

*/

public class SomeBean {



private  String  person_id;

private  String  person_name;

private  String  person_status;

public String getPerson_id() {

return person_id;

}

public void setPerson_id(String person_id) {

this.person_id = person_id;

}

public String getPerson_name() {

return person_name;

}

public void setPerson_name(String person_name) {

this.person_name = person_name;

}

public String getPerson_status() {

return person_status;

}

public void setPerson_status(String person_status) {

this.person_status = person_status;

}

@Override

public String toString() {

return "SomeBean [person_id=" + person_id + ", person_name=" + person_name + ", person_status=" + person_status

+ "]";

}

}

 

 

单元测试代码如下:

@Test

public void testFindPersonByResultMap() throws Exception

{



//使用SqlMapConfig.xml配置文件。

InputStream  is = Resources.getResourceAsStream("SqlMapConfig.xml");



//构造MyBatis的SessionFactory对象.

SqlSessionFactory  sessionBuilder = new SqlSessionFactoryBuilder().build(is);



//将会指向MyBatis的Session对象实例。

SqlSession  session = null;

try{

//打开Session。

session = sessionBuilder.openSession();



//找到MyBatis自动实现的PersonMapper接口的代理对象。

PersonMapper  personMapper = session.getMapper(PersonMapper.class);



//查找记录,使用resultMap进行结果集的映射。

List<SomeBean> beans = personMapper.findPersonByResultMap();

for(SomeBean bean:beans){

System.out.println(bean);

}





}

catch(Exception ex){

ex.printStackTrace();

throw ex;

}

finally{

//确保关闭session对象。

if(null != session){

session.close();

session = null;

}

} 

}

 

 

运转结果如下:

0    [main] DEBUG
com.test.mybatis3.mapper.PersonMapper.findPersonByResultMap  – ==>
 Preparing: select * from t_person

43   [main] DEBUG
com.test.mybatis3.mapper.PersonMapper.findPersonByResultMap  – ==>
Parameters:

58   [main] TRACE
com.test.mybatis3.mapper.PersonMapper.findPersonByResultMap  – <==
   Columns: id, name, status

58   [main] TRACE
com.test.mybatis3.mapper.PersonMapper.findPersonByResultMap  – <==
       Row: lisi, li si, 0

58   [main] TRACE
com.test.mybatis3.mapper.PersonMapper.findPersonByResultMap  – <==
       Row: zhangsan, zhang san, 0

58   [main] DEBUG
com.test.mybatis3.mapper.PersonMapper.findPersonByResultMap  – <==
     Total: 2

SomeBean [person_id=lisi, person_name=li si, person_status=0]

SomeBean [person_id=zhangsan, person_name=zhang san,
person_status=0]

 

网站地图xml地图