本文主要是介绍Mybatis学习笔记(8)--一对多的关联使用resultMap输出类型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.domain实体类
public class User {private int id;private String name;//用户名private String sex;//性别private Date birthday;//生日private String address;//地址//一对多,一个用户可能存在多个订单private List<Order> orders;
}
2.mapper文件
<resultMap type="com.skiff.www.domain.User" id="userOrders"><id column="id" property="id"/><result column="username" property="name" /><result column="birthday" property="birthday"/> <result column="sex" property="sex"/><!-- 配置一对多的关系 --><!-- 一个订单关联查询出了多条订单明细,用使用collection进行映射 collection:对关联查询到的多条记录映射到集合对象中 property:将关联查询得到的多条记录映射到com.skiff.www.domain.User类中的哪个属性上 ofType:指定映射到List集合的pojo的类型--><collection property="orders" javaType="list" ofType="com.skiff.www.domain.Order"><!-- 配置主键,是关联Order的唯一标识 --><id property="id" column="oid" /><result property="number" column="number" /><result property="createtime" column="createtime" /><result property="note" column="note" /></collection></resultMap>
3.mapper接口
public interface OrderMapper {//命名空间 绑定此接口public Order findOrderById(Integer id);// 获取所有的数据public List<Order> findOrderAll();//一对一的查询public List<Order> findOrderAndUser();//一对一的查询第二中方式public List<Orders> findOrderAndUser2();//一对多的查询public List<User> findUserOrder();}
4测试方法
@Testpublic void findUserOrder() { //创建SqlSessionFactory//创建SqlSessionSqlSession sqlSession = sqlSessionFactory.openSession();//SqlSEssion帮我生成一个实现类 (给接口)OrderMapper orderMapper = sqlSession.getMapper(OrderMapper.class);List<User> users = orderMapper.findUserOrder();for (User user : users) {System.out.println(user);for (Order order : user.getOrders()) {System.out.println(order);}}}
这篇关于Mybatis学习笔记(8)--一对多的关联使用resultMap输出类型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!