mybatis 关联对象mapper.xml的写法
https://github.com/zfrHJ/mybaties/blob/master/mybaties/src/com/itheima/mybatits/mapper/OrdersMapperCustom.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"> | |
| <!-- namespace命名空间特殊作用: 如果使用mapper动态代理方法,这里就需要配置mapper接口地址 --> | |
| <mapper> | |
| <!--根据用户id查询一条记录(返回单条记录) --> | |
| <!-- select 标签表示sql查询,内容会封装到Mapped Statement中 可以将这个select标签称为一个statement | |
| id:Statement 的id 用于标识select中定义的sql,id是在同一个命名空间中不允许重复 #{}:表示一个占位符,避免sql注入 | |
| parameterType:表示输入参数的类型 resultType:表示输出 结果集单条记录映射的java对象类型,select查询的字段名和resultTyep | |
| 中属性名一致,才能映射 #{}:表示parameter输入参数的变量,如歌输入参数是简单类型,使用#{}占位符 变量名可以使用value或其其它的 --> | |
| <select id="findUserId" parameterType="int" resultType="itheima.mybaties.po.User"> | |
| select * from user where id=#{id} | |
| </select> | |
| <resultMap type="orders" id="ordersUserResulMap"> | |
| <!-- id:订单信息的唯一约束 --> | |
| <!-- 如果由多个字段决定一条唯一记录,id便签需要定义多个 --> | |
| <result column="id" property="id" /> | |
| <result column="order_number" property="order_number" /> | |
| <result column="user_id " property="user_id" /> | |
| <!-- 配置用户映射信息 将sql查询的用户信息映射到orders中的user属性中 association :用于单个失联对象的映射 property:将关联信息映射到orders的那个属性 | |
| javaType: 映射属性的类型 --> | |
| <association property="user" javaType="com.itheima.po.User"> | |
| <!-- id:关联的用户信息的唯一约束 --> | |
| <!-- property :id指定的列映射到关联com.itheima.po.User类的那个属性中 --> | |
| <id column="user_id" property="id" /> | |
| <result column="username" property="username" /> | |
| <result column="address" property="address" /> | |
| </association> | |
| </resultMap> | |
| <!--一 对多 --> | |
| <resultMap type="orders" id="ordersUserDetailResultMap" | |
| extends="ordersUserResultMap"> | |
| <!-- 订单级用户信息,继承ordersUserResultMap --> | |
| <!-- 映射订单明细信息collection:映射集合对象 property:将明细信息映射到那个集合属性中。ofType:集合中对象的类型--> | |
| <collection property="orserdetails" ofType="com.itheima.po.Orderdetail"> | |
| <!-- id:订单明细的唯一约束 | |
| property:ofType指定类型的属性 | |
| --> | |
| <id column="orderdetail_id" property="id"/> | |
| <result column="item_id" property="item_id"/> | |
| <result column="item_num" property="item_num"/> | |
| <result column="item_price" property="item_price"/> | |
| </collection> | |
| </resultMap> | |
| <select id="findOrderUserDetailList" resultMap="ordersUserDetailResultMap"> | |
| SELECT | |
| orders.*, | |
| user.username, | |
| user.address, | |
| orderdetail.id orderdetail_id, | |
| orderdetail.item_id, | |
| orderdetail.item_num, | |
| orderdetail.item_price | |
| FROM | |
| orders, | |
| USER, | |
| orderdetail | |
| WHERE orders.user_id = user.id AND orders.id = | |
| orderdetail.orders_id | |
| </select> | |
| <!-- 查询订单及订单明细信息及商品信息 --> | |
| <select id="findOrdersUserDetailItemList" resultMap="ordersUserDetailItemResultMap"> | |
| SELECT | |
| orders.*, | |
| user.username, | |
| user.address, | |
| orderdetail.id orderdetail_id, | |
| orderdetail.item_id, | |
| orderdetail.item_num, | |
| orderdetail.item_price , | |
| items.item_detail, | |
| items.item_name, | |
| items.item_price item_price_price | |
| FROM | |
| orders, | |
| USER, | |
| orderdetail, | |
| items | |
| WHERE orders.user_id = user.id | |
| AND | |
| orders.id = orderdetail.orders_id | |
| AND orderdetail.item_id = items.id | |
| </select> | |
| </mapper> |
mybatis 关联对象mapper.xml的写法的更多相关文章
- mybatis映射文件mapper.xml的写法(collections...)
转自:https://blog.csdn.net/two_people/article/details/51759881 在学习mybatis的时候我们通常会在映射文件这样写: <?xml ve ...
- (后端)mybatis 模糊查询 mapper.xml的写法(转)
原文地址:https://blog.csdn.net/sc6231565/article/details/46412765 1. sql中字符串拼接 SELECT * FROM tableName W ...
- mybatis 模糊查询 mapper.xml的写法
1. sql中字符串拼接 SELECT * FROM tableName WHERE name LIKE CONCAT(CONCAT('%', #{text}), '%'); 2. 使用 ${...} ...
- Mybatis 关联对象不能输出的解决办法
Mybatis 关联对象不能输出的解决办法 1.如图所示,现在进行查询的时候并没有得到来自另一张表address项 2.我们进行如下配置: (1).在mybatis-config.xml 文件中配置, ...
- Mybatis中的Mapper.xml映射文件sql查询接收多个参数
我们都知道,在Mybatis中的Mapper.xml映射文件可以定制动态SQL,在dao层定义的接口中定义的参数传到xml文件中之后,在查询之前mybatis会对其进行动态解析,通常使用#{}接收 ...
- mybatis 学习三 mapper xml 配置信息
mapper xml 映射文件 1,select 标签 简单是用就这样,其中resultType 代表从这条语句中返回的期望类型的类的完全限定名或别名.也可以使用resultMap对应的id ...
- mybatis(三)配置mapper.xml 的基本操作
参考:https://www.cnblogs.com/wuzhenzhao/p/11101555.html XML 映射文件 本文参考mybatis中文官网进行学习总结:http://www.myba ...
- mybatis中的mapper.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-/ ...
- 使用generator自动生成mybatis model、mapper.xml、mapper等(转)
原文链接:http://www.cnblogs.com/lichenwei/p/4145696.html Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件 ...
随机推荐
- 你应该了解的5个JavaScript调试技巧
在某些情况下需要更好的工具,下面是其中的一些佼佼者,我敢肯定你会发现它们的有用之处: 1. debugger; 正如我之前提到的,你可以使用“debugger;”语句在代码中加入强制断点. 需要断点条 ...
- Servlet监听器类型
------------------------serlvet对象监听器------------------------------------------- request监听器(ServletRe ...
- ThinkPHP框架下,jq实现在div中添加标签并且div的大小会随之变化
php初学者,有什么不对的还请指正. 首先是在html页面中用jq实现添加标签:divAchivePersonnal是select所在的div的外层div,divselectAchivePersonn ...
- cocod2d-x 之 CCTMXTiledMap & CCTMXLayer
cocos2dx框架自带的地图CCTMXTiledMap,继承自CCNode.CCTMXTiledMap的坐标系的原点位于左上角,以一个瓦片为单位,换句话说,左上角第一块瓦片的坐标为(0,0),而紧挨 ...
- 基于Qt QGraphicsView的多点触摸绘图
本应用于基于QGraphicsView框架,实现多点触摸. 工程仅仅演示了多点触摸绘图,源自我前段时间一款基于Qt的绘图软件. 工程结构: kmp.h 定义了枚举 slide.h/cpp 定义了派生于 ...
- 【面霸1】php知识点
PHP简介 Hypertext Preprocessor,超文本预处理器的缩写,主要是用于服务端的脚本程序 PHP 标记风格 1.xml风格 < ? php ? > 2.脚本风格 & ...
- Frame与启动流程
1. frame与bounds的区别: frame是从屏幕的左上角开始计算位置,而bounds是从新添加view左上角作为(0,0)开始计算 bounds是以自身为参考系,所以左上角的点为原点 cen ...
- hiho一下103周 平衡树·Treap
平衡树·Treap 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho:小Hi,我发现我们以前讲过的两个数据结构特别相似. 小Hi:你说的是哪两个啊? 小Ho:就是二 ...
- laravel框架——线上环境错误总结
除了根目录,其他目录访问全是Not Found
- 火星02坐标转换为WGS84坐标
import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import jav ...