一、映射器是由Java接口和XML文件(或注解)共同组成的,它的作用主要有:
1、定义参数类型。
2、描述缓存。
3、描述SQL语句。
4、定义查询结果和POJO的映射关系。
二、实现Mapper,主要有通过代码方式实现和通过XML文件方式实现两种方式,下面主要讲解较优方案——XML文件方式实现Mapper的实现步骤。
第一步,定义一个Java接口,且定义一个方法getRole,通过角色编号找到角色对象。示例如下:
public interface RoleMapper{
public Role getRole(Long id);
}
第二步,下面进行XML文件配置,示例如下:
<?XML version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybtis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.kanq.mapper.RoleMapper">
<select id="getRole" parameterType="long" resultType="role">
select id,role_name as roleName,nte from t_role where id=#{id}
</select>
</mapper>
注解:1、该文件要在mybatis-config.xml中进行定义映射器,如下:
<mappers>
<mapper resource="com/kanq/mapper/roleMapper.xml"/>
</mappers>
通过以上配置,MyBatis会读取这个配置文件roleMapper.xml,生成映射器。
2、定义一个命名空间,此处为com.kanq.mapper.RoleMapper。注意此命名空间和接口的定义是一致的。
3、使用一个select元素定义了一个查询SQL,id为getRole,和我们接口方法一致。
第三步,定义一个POJO,如下代码:
package com.kanq.po;
public class Role{
private Long id;
private String roleName;
private String note;
public Long getId(){return id;}
public void setId(Long id){this.id = id;}
public getRoleName(){return roleName;}
public setRoleName(String roleName){this.roleName = roleName;}
public String getNote(){return note;}
publiv void setNote(String note){this.note = note;}
}
第四步,运用该Mapper
RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.calss);
Role role = roleMapper.getRole(1L);
System.out.println(role.getRoleName());
以上主要说明了一个MyBatis的配置以及查询过程,代码已通过测试。