mybatis下单表关联一对多查询

先说下实体类的配置,给个List或者Set
    private Integer id;

    private String navName;//名称

    private String navContent;//内容

    private String url;//链接地址

    private String navLevel;//导航栏级别

    private String navPname;//父级导航名称

    private String navPid;//父级导航id

    private String navIsdel;//0正常

    private String navSequence;//导航排序
    
    private List<Navigation> nav;

接下来是mapper.xml,注意,因为是单表,所以字段名是一致的,建议使用别名查询,不然会出问题的。

 <resultMap type="com.jjy.pojo.Navigation" id="test" extends="BaseResultMap">
    	<collection property="nav" ofType="com.jjy.pojo.Navigation">
	       <result column="bname" property="navName" jdbcType="VARCHAR" />
	       <result column="burl" property="url" jdbcType="VARCHAR" />
    	</collection>
    
    </resultMap>

然后是sql语句,单表关联查询的话尽量选择做左联接查询,效率要比内连接高一些

  <select id="test"  resultMap="test">
    
    	 select
    a.id,a.nav_name, a.nav_content, a.url, a.nav_level, a.nav_pname, a.nav_pid, a.nav_isdel, a.nav_sequence, b.nav_name bname
    from navigation a left join navigation b on b.nav_pid = a.id where a.nav_pid=0 
  
    </select>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值