跳到主要内容

Mapper 文件

使用 @RefMapper 注解将 Mapper 接口与 XML 文件关联,将全部或部分方法的 SQL 定义迁移到文件中。接口上未关联到文件的方法仍然可以使用 方法注解

Mapper 接口
@RefMapper("/mapper/userMapper.xml")
public interface UserMapper {
// 注解方式定义的 SQL
@Insert("insert into users (id, name) values (#{id}, #{name})")
int saveUser(User user);

// 映射到 XML 文件中的 SQL
List<User> listUsers(@Param("searchId") long searchId);
}
userMapper.xml
<mapper namespace="net.example.mapper.UserMapper">
<select id="listUsers">
select * from users where id > #{searchId}
</select>
</mapper>
使用 Mapper
Session session = config.newSession(dataSource);
UserMapper mapper = session.createMapper(UserMapper.class);
List<User> result = mapper.listUsers(2);
提示

Session 的获取方式取决于项目架构,详见 框架整合

使用指引

  • 文档结构,Mapper 文件的基本结构与文档验证。
  • 文档标签<select><insert><update><delete> 等 SQL 标签(可查 类型别名)。
  • 动态 SQL<if><choose><foreach> 等标签实现动态拼接。
  • 规则,通过规则赋予 SQL 更强大的动态能力。
  • 映射表,在 XML 中配置 Java 对象与数据库表的映射。
  • 映射结果集,配置查询结果集到 Java 对象的映射。
  • 自动映射,简化 <resultMap><entity> 配置。
  • 分页查询,通过分页对象进行分页查询。