mybatis10--自连接多对一查询

查询老师对应的所有导师的信息

在09的基础上修改dao和mapper文件

public interface TeacherDao {
    /**
     * 根据老师的编号查询所有的导师信息
     */
    Teacher selectTeahcerById(Integer tId);
}
<?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">
<mapper namespace="cn.bdqn.dao.TeacherDao">

    <resultMap type="Teacher" id="teacherMap">
      <id property="id" column="id"/>
      <result property="name" column="name"/>
      <!-- 设置关联集合的属性   递归查询 把查询到的tid当作id再次查询上级的导师信息 -->
      <association property="teacher" javaType="Teacher"
       select="selectTeahcerById" column="tid"/>
    </resultMap>

     <select id="selectTeahcerById" resultMap="teacherMap">
      select  id,name,tid from  teacher where id=#{xxx}
    </select>

</mapper>

测试类代码

 /**
     * 根据老师的编号查询所有的导师信息
     */
    @Test
    public void test1() {
        Teacher teacher = dao.selectTeahcerById(8);
        System.out.println(teacher);
    }
时间: 2024-10-09 21:25:39

mybatis10--自连接多对一查询的相关文章

22Mybatis_订单商品数据模型_多对多查询以及对多对多查询的总结

之前讲了一对一,一对多查询,这篇文章讲的是多对多. 先给出需求:查询用户及用户购买商品信息. 我们由之前的文章知道,这个需求是多对多的. 还是那个终止我们的mybatis所做的不管是之前的一对一还是一对多还是多对多,都只是为了把查询出来的结果(每个字段)做好映射. 好,我们现在sqlyong上把数据查出来,然后做映射. 给出几张表的内容: User表: orderdetail表: orders表: items表: 我们根据需求(查询用户及用户购买商品信息)把sql语句写出来: sql: SELE

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

mybatis学习笔记(11)-多对多查询 mybatis学习笔记11-多对多查询 示例 多对多查询总结 resultMap总结 本文实现多对多查询,查询用户及用户购买商品信息. 示例 查询主表是:用户表 关联表:由于用户和商品没有直接关联,通过订单和订单明细进行关联,所以关联表:orders.orderdetail.items sql SELECT orders.*, user.username, user.sex, user.address, orderdetail.id orderdeta

SpringBoot使用Mybatis注解进行一对多和多对多查询(2)

SpringBoot使用Mybatis注解进行一对多和多对多查询 GitHub的完整示例项目地址kingboy-springboot-data 一.模拟的业务查询 系统中的用户user都有唯一对应的地址信息address,每个用户可以有多量车car,类似如下结构 |-- user |-- address |-- carList |-- car1 |-- car2 二.对应的实体类如下 /省略setter/getter public class Address { private Long id;

Django 之 多对多查询与操作方法

多对多表之间关系表 models.py文件代码 from django.db import models # Create your models here. class Publisher(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=64,null=False,unique=True) def __str__(self): return "publisher_

django-blog:多对多查询

简单写一下多对多查询model 不是多对多的字段我就没写上来的 class Tag(models.Model): name = models.CharField(max_length=20,verbose_name='标签') add_time = models.DateField(default=datetime.now) class Meta: verbose_name = '标签' verbose_name_plural = verbose_name def __str__(self):

django model 多对多查询

看一下自己的models文件: class HostList(models.Model):     ip = models.IPAddressField(unique=True, verbose_name=u'IP地址')     hostname = models.CharField(max_length=30, verbose_name=u'主机名')     group = models.ManyToManyField('Group', null=True, blank=True ,ver

20_高级映射:多对多查询

[需求] 查询用户及用户购买的商品信息. [SQL语句] 查询主表:用户user表 关联表:由于用户和商品没有直接关联,需通过订单和订单明细进行关联,所以关联的表是 orders.orderdetail.items [映射的思路] 将用户信息映射到user中. 在user类中添加订单列表属性List<Orders> orderlist,将用户创建的订单映射到orderslist. 在Orders中添加订单明细列表属性List<OrderDetail> orderdetails,将订

【MyBatis学习10】高级映射之多对多查询

本文来总结一下mybatis中的多对多映射,从第8节的文章中可以看出,用户表和商品表示多对多关系,它们两的多对多是通过订单项和订单明细这两张表所关联起来的,那么这一节主要来总结一下用户表和商品表之间的多对多映射. 首先在上一节的基础上继续写sql, SELECT orders.*, user.`username`, user.`sex`, user.`address`, orderdetail.`id` orderdetail_id, orderdetail.`items_id`, orderd

django ORM 一对多, 多对多 查询 以及 结合Tamplate

ORM 表结构:和管理员是多对多, 和 OS 是一对多 class hosts(models.Model): out_ip=models.CharField(max_length=32) in_ip=models.CharField(max_length=32) app=models.ForeignKey(App) login_user=models.CharField(max_length=32) login_pwd=models.CharField(max_length=32) os=mod

mybatis: 多对多查询[转]

加入3个包 log4j-1.2.17.jar mybatis-3.3.0.jar mysql-connector-java-5.1.8.jar log4j需要配置 log4j.properties # Global logging configuration log4j.rootLogger=DEBUG, stdout # Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender