mybatis的一对多查询

创建实体类对象

class XXX{

string xxx,

string xxx,

List<MMM> mmm,

}

mybatis  xml 文件的编写两种方式

<!--  第一种方式 黑域名一对多的关系 -->
<select id="getListDns" resultMap="listDns">
SELECT t1.*,t2.DnsServerIp ,t2.ParseIp ,t2.DnsSrcPort ,t2.VisitTime ,t2.FtpIp ,t2.FtpdataPath
FROM BlackDomainIP t1,BlackDomain t2
WHERE t1.VisitIp = t2.VisitIp AND t1.VisitMac = t2.VisitMac AND t1.DnsIp = t2.DnsIp
</select>
<resultMap type="com.gh.order.model.blackdnsip.DnsIpModel" id="listDns">
<id column="VisitIp" property="VisitIp"/>
<id column="DnsIp" property="DnsIp"/>
<id column="VisitMac" property="VisitMac"/>
<result column="RuleType" property="RuleType"/>
<result column="RuleDes" property="RuleDes"/>
<result column="VisitNumber" property="VisitNumber"/>
<result column="Remark" property="Remark"/>
<result column="FirstTime" property="FirstTime"/>
<result column="LastTime" property="LastTime"/>
<result column="CaptrueName" property="CaptrueName"/> 
<!-- 一对多 -->
<!-- <association property="listdnsmodel" javaType="com.gh.order.model.blackdnsip.DnsModel">
<result column="DnsServerIp" property="DnsServerIp"/>
<result column="ParseIp" property="ParseIp"/>
<result column="DnsSrcPort" property="DnsSrcPort"/>
<result column="VisitTime" property="VisitTime"/>
<result column="FtpIp" property="FtpIp"/>
<result column="FtpdataPath" property="FtpdataPath"/>
</association>
</resultMap> -->
<!-- 第二种查询方式 一对多 -->
<resultMap type="com.gh.order.model.blackdnsip.DnsIpModel" id="listDns">
<id column="VisitIp" property="VisitIp"/>
<id column="DnsIp" property="DnsIp"/>
<id column="VisitMac" property="VisitMac"/>
<result column="RuleType" property="RuleType"/>
<result column="RuleDes" property="RuleDes"/>
<result column="VisitNumber" property="VisitNumber"/>
<result column="Remark" property="Remark"/>
<result column="FirstTime" property="FirstTime"/>
<result column="LastTime" property="LastTime"/>
<result column="CaptrueName" property="CaptrueName"/>
<!-- 一对多 -->
<collection property="listdnsmodel" javaType="ArrayList" column= "{prop1=VisitIp,prop2=DnsIp,prop3=VisitMac}" ofType="com.gh.order.model.blackdnsip.DnsModel" select="selectPostsForBlog"/>
</resultMap>
<select id="getListDns" resultMap="listDns">
SELECT * FROM BlackDomainIP
</select>
<select id="selectPostsForBlog" resultType="com.gh.order.model.blackdnsip.DnsModel">
SELECT DnsServerIp ,ParseIp ,DnsSrcPort ,VisitTime ,FtpIp ,FtpdataPath FROM BlackDomain
WHERE VisitIp =#{prop1} AND VisitMac = #{prop3} AND DnsIp = #{prop2}
</select>

原文地址:https://www.cnblogs.com/yht-817/p/8663560.html

时间: 2025-01-12 14:27:21

mybatis的一对多查询的相关文章

mybatis进阶--一对多查询

首先,我们还是先给出一个需求:根据订单id查询订单明细--我们知道,一个订单里面可以有多个订单的明细(需求不明确的同学,请留言或者去淘宝网上的订单处点一下就知道了).这个时候,一个订单,对应多个订单的id.这种需求出现的时候,我们应该如何查询呢? 此时我们的数据模型如下图(左)由于查询用户也是我们的需求,所以就在原有的基础上进行扩展,数据模型如下(右): 很显然,如果用resultType的方式去实现的话,是不合理的了.因为我们需要创建一个既有订单又有订单明细的pojo然后呢,我们的mybati

mybatis学习笔记(11)-一对多查询

mybatis学习笔记(11)-一对多查询 mybatis学习笔记11-一对多查询 示例 小结 本文实现一对多查询,查询订单及订单明细的信息 示例 sql 确定主查询表:订单表 确定关联查询表:订单明细表 在一对一查询基础上添加订单明细表关联即可. SELECT orders.*, user.username, user.sex, user.address, orderdetail.id orderdetail_id, orderdetail.items_id, orderdetail.item

Mybatis的一对多(collection)和一对一(association)查询

1.mybatis支持映射复杂的查询结果集 2.表之间的关系 3.实体及其对应关系: @Data @EqualsAndHashCode(callSuper = false) public class TestOne implements Serializable { private static final long serialVersionUID = 1L; private Integer id; // private String nickname; // private List<Tes

Mybatis最入门---ResultMaps实例篇(一对多查询)

[一步是咫尺,一步即天涯] 接上文,我们来演示在实际开发中,如何配置和使用resultMap实现一对多查询. 准备工作: a.操作系统 :win7 x64 b.基本软件:MySQL,Mybatis,Spring,SQLyog,Tomcat,web基础 特别的,作为演示程序,还请各位看官不要纠结数据库的细节内容 ----------------------------------------------------------------------------------------------

mybatis0205 一对多查询 复杂

查询所有用户信息,关联查询订单及订单明细信息及商品信息,订单明细信息中关联查询商品信息 1.1sql 主查询表:用户信息 关联查询:订单.订单明细,商品信息 SELECT orders.*, user.username, user.sex , orderdetail.id orderdetail_id, orderdetail.items_num, orderdetail.items_id, items.name items_name, items.detail items_detail FRO

mybatis0204 一对多查询

查询所有订单信息及订单下的订单明细信息. sql语句 主查询表:订单表 关联查询表:订单明细 SELECT orders.*, user.username, user.sex , orderdetail.id orderdetail_id, orderdetail.items_num, orderdetail.items_id FROM orders, USER, orderdetail WHERE orders.user_id = user.id AND orders.id = orderde

19_高级映射:一对多查询(使用resultMap)

[需求] 查询订单以及订单明细的信息. 确定主查询表:订单表orders 确定关联查询表:订单明细表 orderdetail 在一对一查询的基础上添加订单明细表关联即可. [分析] 使用resultMap将上面的查询结果映射到pojo中,订单信息有重复. 要求:对orders映射不能出现重复记录 在orders.java类中添加List<orderDetail> orderDetails属性. 最终会将订单信息映射到orders中,订单所对应的订单明细映射到orders中的orderDetai

Hibernate(二)——一对多查询

1. 前言 本章节我们讨论Hibernate一对多查询的处理. 在上一章节中(Hibernate(一)——入门),我们探讨了Hibernate执行最基本的增删改查操作.现在我们将情况复杂化:加入我们在查询用户信息的时候需要同时查询其登录日志,这样就涉及到一对多查询.那么一对多查询要怎么实现么? 2. jar包准备 在本节中,除了上一章节中用到的jar包,我还需要用log4j.jar来将Hibernate的查询语句输出到控制台.log4j.properties的配置如下: 1 log4j.root

MyBatis Review——一对多关系映射配置

示例: 查询订单表及订单明细信息. 编写sql查询语句: SELECT orders.*, USER .username ,USER .sex, USER .address, orderdetail.id as orderdetail_id, orderdetail.items_id, orderdetail.items_num, orderdetail.orders_id FROM orders, USER, orderdetail WHERE orders.user_id = USER .i