什么是Mapper
mapper 可以极大的方便开发人员进行ORM,提供极其方便的单表增删改查。
什么是mapper,一句话简单说,它就是个辅助mybatis极简单表开发的组件。它不是为了替代mybatis,而是让mybatis的开发更方便。
可以按照自己的需要选择通用方法,还能很方便的开发自己的通用方法。
注解方式使用Mapper
<!-- mapper配置 -->
<mappers>
<mapper class="mapper.UserMapper"/>
</mappers>
表示mapper已经通过注解的方式搭建好了Java方法和SQL语句之间的桥梁,并且查询出了所需要的数据
XML方式使用Mapper
User模块Mapper层:UserMapper.java
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mapper.UserMapper">
</mapper>
有了XML文件后,我们使用标签给查询年龄的方法添加上对应的SQL语句
select-resultType
在UserMapper.xml文件中,我们新增 selectUserById 标签,该 select 标签的作用是:通过id查询用户
<select id="selectUserById" resultType="">
SELECT * FROM user WHERE id = #{id}
</select>
上面的内容返回的是所有字段值,我们需要自己创建实体类来存储查出来的值
在entity包下创建User实体类:User.java
package entity;
public class User {
private Integer id;
private String username;
private Integer age;
private Integer score;
// 省略getter&setter方法
// 省略toString方法
}
select-resultMap
User模块Mapper层配置文件:UserMapper.xml
<resultMap id="userMap" type="entity.User">
<id property="id" column="id"/>
<result property="username" column="username"/>
<result property="age" column="age"/>
<result property="score" column="score"/>
</resultMap>
上标签中有和两个子标签
其中标签是主键,其它字段均使用 result 标签来映射
标签有property和column两个属性
其中 property 是 Java 对象中的属性名称,column 是数据表与之对应的字段名称
把UserMapper.xml文件中selectUserById标签的返回类型改为上面创建的resultMap