1、
创建实体类
public class User {
private int id; //id
private String name; //姓名
private String pwd; //密码
//构造,有参,无参
//set/get
//toString()
}
编写Mapper接口类
import com.qst.pojo.User;
import java.util.List;
public interface UserMapper {
List<User> selectUser();
}
mapper.xml配置文件(部分)
<mapper namespace="com.qst.dao.UserMapper">
<select id="selectUser" resultType="com.qst.pojo.User">
select * from user
</select>
</mapper>
//其中的namespace绑定接口,id对应于namespace中的方法名,resultType对应于SQL语句的返回值
resultMap
<resultMap id="UserMap" type="User">
//column数据库中的字段,property实体类中的属性
<result column="id" property="id"/>
<result column="name" property="name"/>
<result column="pwd" property="password"/>
</resultMap>
<select id="getUserById" resultMap="UserMap">
select * from mybatis.user where id = #{id}
</select>
association – 一个复杂类型的关联(一对多,对象);许多结果将包装成这种类型
嵌套结果映射 – 关联可以是 resultMap 元素,或是对其它结果映射的引用
collection – 一个复杂类型的集合(多对一,集合)
嵌套结果映射 – 集合可以是 resultMap 元素,或是对其它结果映射的引用
例如:
多个学生,对应一个老师
- 对于学生这边而言, 关联 … 多个学生,关联一个老师 【多对一】
- 对于老师而言, 集合 , 一个老师,有很多学生 【一对多】
按照结果嵌套处理:
<!--按照结果嵌套处理-->
<select id="getStudent2" resultMap="StudentTeacher2">
select s.id sid,s.name sname,t.name tname
from student s,teacher t
where s.tid = t.id;
</select>
<resultMap id="StudentTeacher2" type="Student">
<result property="id" column="sid"/>
<result property="name" column="sname"/>
<association property="teacher" javaType="Teacher">
<result property="name" column="tname"/>
</association>
</resultMap>
//javaType指属性的实体类中属性的类型