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的写法的更多相关文章

  1. mybatis映射文件mapper.xml的写法(collections...)

    转自:https://blog.csdn.net/two_people/article/details/51759881 在学习mybatis的时候我们通常会在映射文件这样写: <?xml ve ...

  2. (后端)mybatis 模糊查询 mapper.xml的写法(转)

    原文地址:https://blog.csdn.net/sc6231565/article/details/46412765 1. sql中字符串拼接 SELECT * FROM tableName W ...

  3. mybatis 模糊查询 mapper.xml的写法

    1. sql中字符串拼接 SELECT * FROM tableName WHERE name LIKE CONCAT(CONCAT('%', #{text}), '%'); 2. 使用 ${...} ...

  4. Mybatis 关联对象不能输出的解决办法

    Mybatis 关联对象不能输出的解决办法 1.如图所示,现在进行查询的时候并没有得到来自另一张表address项 2.我们进行如下配置: (1).在mybatis-config.xml 文件中配置, ...

  5. Mybatis中的Mapper.xml映射文件sql查询接收多个参数

    ​ 我们都知道,在Mybatis中的Mapper.xml映射文件可以定制动态SQL,在dao层定义的接口中定义的参数传到xml文件中之后,在查询之前mybatis会对其进行动态解析,通常使用#{}接收 ...

  6. mybatis 学习三 mapper xml 配置信息

    mapper xml 映射文件 1,select 标签      简单是用就这样,其中resultType 代表从这条语句中返回的期望类型的类的完全限定名或别名.也可以使用resultMap对应的id ...

  7. mybatis(三)配置mapper.xml 的基本操作

    参考:https://www.cnblogs.com/wuzhenzhao/p/11101555.html XML 映射文件 本文参考mybatis中文官网进行学习总结:http://www.myba ...

  8. mybatis中的mapper.xml

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-/ ...

  9. 使用generator自动生成mybatis model、mapper.xml、mapper等(转)

    原文链接:http://www.cnblogs.com/lichenwei/p/4145696.html Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件 ...

随机推荐

  1. 【BZOJ2120】【块状链表】数颜色

    Description 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会像你发布如下指令: 1. Q L R代表询问你从第L支画笔到第R支画笔中共有几种不同颜 ...

  2. 读终端输入数据BufferedReader

    public static void main(String[] args) {        BufferedReader br=new BufferedReader(new InputStream ...

  3. 人人网FED CSS编码前端开发规范

    文件相关规范 1.文件名必须由小写字母.数字.中划线-组成 2.文件必须用utf-8编码 3.文件引入可通过外联或内联方式引入: 3.1 外联方式:<link rel=”stylesheet” ...

  4. 反射给对象赋值遇到的问题——类型转换[转http://blog.csdn.net/xiaohan2826/article/details/8536074]

    发布时间:2012-10-25 10:49浏览次数:225 给一个对象属性赋值可以通过PropertyInfo.SetValue()方式进行赋值,但要注意值的类型要与属性保持一致.   创建对象实例的 ...

  5. DEDECMS会员注册如何配置邮箱发送邮件功能

    网站邮件功能是一个非常基础和有效的通信工具,配合dede会员注册邮件验证功能可以大量的拒绝垃圾注册用户.那么如何配置DEDECMS会员注册邮箱发送邮件功能?   1:配置dedecms网站发信EMAI ...

  6. 当INPUT 连续输入是连续触发

    在 Web 开发中经常会碰到需要动态监听输入框值变化的情况,如果使用 onkeydown.onkeypress.onkeyup 这个几个键盘事件来监测的话,监听不了右键的复制.剪贴和粘贴这些操作,处理 ...

  7. Java认证:JavaRunnable线程编写接口代码

    Java认证:JavaRunnable线程编写接口代码.JavaRunnable线程如何才能更好的适应目前的编程环境呢?下面我们就看看如何才能更好的进行相关环境.希望下面的文章对大家有所帮助.Java ...

  8. 为什么Android AsyncTask的使用要遵循五大原则

    引言 AsyncTask是一个围绕Handler和Thread而设计的助手类,封装了在工作线程中与UI交互的细节,只需要对应重写几个回调方法即可,并使得代码更加简洁,优雅.但要注意的是AsyncTas ...

  9. B题 - A+B for Input-Output Practice (I)

      Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u   Description You ...

  10. Tornado 的教材

    Tornado 的教材 作者:杨昆链接:https://www.zhihu.com/question/19707966/answer/12731684来源:知乎著作权归作者所有,转载请联系作者获得授权 ...