查看“进阶:高级映射”的源代码
←
进阶:高级映射
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[category:Mybatis]] __TOC__ == 关于 == {| class="wikitable" ! 标签 !! 说明 |- | association | 用于映射关联单个对象的信息 # property:表示关联查询的结果,对应于类的属性; # javaType:表示关联查询的结果类型(所映射的pojo类型); |- | collection | 用于关联查询到多条记录映射到集合对象中 # # # # # # # |} == 一对一 == 示例:查询所有订单信息,关联查询下单用户信息。<br/> note: # 订单->用户:一对一 # 用户->订单:一对多 === 使用resultType === 使用resultType,专门的po类作为输出类型,此po类中包括了订单信息和用户信息:<br/> OrdersCustom.java: <syntaxhighlight lang="java" line highlight="3,4"> public class OrdersCustom extends Orders { private String username;// 用户名称 private String address;// 用户地址 // get/set } </syntaxhighlight> UserMapper.xml: <syntaxhighlight lang="xml" line highlight="2"> <!-- 查询所有订单信息 --> <select id="findOrdersList" resultType="OrdersCustom"> SELECT orders.*, user.username, user.address FROM orders, user WHERE orders.user_id = user.id </select> </syntaxhighlight> UserMapper.java: <syntaxhighlight lang="java" line highlight="1"> public List<OrdersCustom> findOrdersList() throws Exception; </syntaxhighlight> UserMapperTest.java: <syntaxhighlight lang="java" line highlight="8"> Public void testfindOrdersList()throws Exception{ //获取session SqlSession session = sqlSessionFactory.openSession(); //获限mapper接口实例 UserMapper userMapper = session.getMapper(UserMapper.class); //查询订单信息 List<OrdersCustom> list = userMapper.findOrdersList(); System.out.println(list); //关闭session session.close(); } </syntaxhighlight> === 使用resultMap === 使用resultMap,定义专门的resultMap用于映射一对一查询结果:<br/> * 在resultMap中使用'''association'''完成关联查询,将关联查询信息映射到pojo对象中。<br/> Orders.java: <syntaxhighlight lang="java" line highlight="13"> public class Orders { private Integer id; private Integer userId; private String number; private Date createtime; private String note; //用户信息 private User user; ... } </syntaxhighlight> UserMapper.xml: <syntaxhighlight lang="xml" line highlight="2,8,17"> <!-- 订单信息resultmap --> <resultMap type="cn.itcast.mybatis.po.Orders" id="userordermap"> <!-- 这里的id,是mybatis在进行一对一查询时将user字段映射为user对象时要使用,必须写 --> <id property="id" column="id"/> <result property="user_id" column="user_id"/> <result property="number" column="number"/> <!-- 使用association进行一对一关联查询 --> <association property="user" javaType="cn.itcast.mybatis.po.User"> <!-- 这里的id为user的id,如果写上表示给user的id属性赋值 --> <id property="id" column="user_id"/> <result property="username" column="username"/> <result property="address" column="address"/> </association> </resultMap> <!-- 查询所有订单信息 --> <select id="findOrdersListResultMap" resultType="userordermap"> SELECT orders.*, user.username, user.address FROM orders, user WHERE orders.user_id = user.id </select> </syntaxhighlight> UserMapper.java: <syntaxhighlight lang="java" line highlight="1"> public List<Orders> findOrdersListResultMap() throws Exception; </syntaxhighlight> UserMapperTest.java: <syntaxhighlight lang="java" line highlight="8"> Public void testfindOrdersListResultMap()throws Exception{ //获取session SqlSession session = sqlSessionFactory.openSession(); //获限mapper接口实例 UserMapper userMapper = session.getMapper(UserMapper.class); //查询订单信息 List<Orders> list = userMapper.findOrdersListResultMap(); System.out.println(list); //关闭session session.close(); } </syntaxhighlight> == 一对多 == == 多对多 == == 延迟加载 ==
返回至“
进阶:高级映射
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
笔记
服务器
数据库
后端
前端
工具
《To do list》
日常
阅读
电影
摄影
其他
Software
Windows
WIKIOE
所有分类
所有页面
侧边栏
站点日志
工具
链入页面
相关更改
特殊页面
页面信息