Day4-Mybatis框架(多表的关联查询)
-
关联查询
使用背景:项目中可能不止一个表的时候 即多表的时候(表间关系可分为一对一,一对多,多对多)
这时候查询会涉及到来自多个表的操作。 -
简单的入门代码如下:
**
一、编写测试类
public void test03(){
SqlSession session = MySessionUtils.getSession();
//update insert delete find
UserDao userDao = session.getMapper(UserDao.class);
List<User> list=userDao.findAllUsers();
System.out.println(list);
//关闭资源
session.commit();
session.close();
}
}
二、创建pojo类(Order)
// 订单id
private int id;
// 用户id
private Integer userId;
// 订单号
private String number;
// 订单创建时间
private Date createtime;
// 备注
private String note;
- 记得get set方法以及toString。
三、定义接口
public interface UserDao {
List<User> findByIds(@Param("ids") List<Integer> list);
List<User> findAllUsers();
}
* 四、resultMap与association 配置映射
<select id="findAllUsers" resultMap="findAllUserscontrul">
select u.id as uid,
u.username,
u.birthday,
u.sex,
u.address,
o.id as oid,
o.user_id as userId,
o.number,
o.createtime,
o.note
from `user` u left join `order` o
on u.id=o.user_id;
</select>