Mybatis学习4——多对一
2024-09-21 17:28:13
一个用户对多个订单
在用户中添加属性List<user>
User.java
package pojo; import java.util.Date;
import java.util.List; public class User { private Integer id;
private String username;// 鐢ㄦ埛濮撳悕
private String sex;// 鎬у埆
private Date birthday;// 鐢熸棩
private String address;// 鍦板潃
private String uuid2;
private List<Order> orderList; public List<Order> getOrderList() {
return orderList;
} public void setOrderList(List<Order> orderList) {
this.orderList = orderList;
} public String getUuid2() {
return uuid2;
} public void setUuid2(String uuid2) {
this.uuid2 = uuid2;
} public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
} public Date getBirthday() {
return birthday;
} public void setBirthday(Date birthday) {
this.birthday = birthday;
} public String getAddress() {
return address;
} public void setAddress(String address) {
this.address = address;
} @Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", sex=" + sex + ", birthday=" + birthday + ", address="
+ address + ", uuid2=" + uuid2 + ", orderList=" + orderList + "]";
} }
mapper文件UserMapper.xml
<?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">
<resultMap type="user" id="user_order_map">
<id property="id" column="id"/>
<result property="username" column="username"/>
<result property="address" column="address"/>
<result property="birthday" column="birthday"/>
<result property="sex" column="sex"/>
<!-- collection用于配置一对多关联 -->
<collection property="orderList" ofType="order">
<id property="id" column="oid"/>
<result property="userId" column="id"/>
<result property="number" column="number"/>
<result property="createtime" column="createtime"/>
<result property="note" column="note"/>
</collection>
</resultMap>
<select id="getUserOrderMap" resultMap="user_order_map">
select
u.id,
u.username,
u.birthday,
u.sex,
u.address,
u.uuid2,
o.id oid,
o.number,
o.createtime,
o.note
from
user u
left join
order1 o
on o.user_id = u.id </select>
</mapper>
测试
@Test
public void getUserOrderMap() {
SqlSession openSession = SqlSessionFactoryUtil.getSqlSessionFactory().openSession();
//获得接口实现类
UserMapper mapper = openSession.getMapper(UserMapper.class);
List<User> orderUserMap = mapper.getUserOrderMap();
for (User user : orderUserMap) {
List<Order> orderList = user.getOrderList();
for (Order order : orderList) {
if(order.getId()!=null)
System.out.println("========"+order);
}
}
openSession.close();
}
最新文章
- 【备忘】Conky配置
- 怎么在Microsoft Project中冻结列
- HTTP参数污染
- C#拼接SQL语句,SQL Server 2005+,多行多列大数据量情况下,使用ROW_NUMBER实现的高效分页排序
- AutoMapperHelper
- mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication解决办法
- CodeForces 352D. Jeff and Furik
- HDU 5884 Sort
- 纯CSS3实现轮播图
- Mac OSX下Sublime Text配置使用Ctags实现代码跳转
- 分享一个二维码图片识别控制台程序Demo
- CSS Grid 布局完全指南(图解 Grid 详细教程)
- 【Git】Git常见错误
- saltStack运维工具的部署及master迁移实现的过程详解
- iOS后台唤醒实战:微信收款到账语音提醒技术总结
- Maven学习——修改Maven的本地仓库路径
- iOS 程序插件及功能动态更新思路
- Qt数据库_资料
- 解决Cygwin编译cocos2dx 遇到的 error: &#39;UINT64_C&#39; was not declared in this scope 问题
- JeeSite 4.x SAAS 多租户技术设计方案