栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MyBatis—多表查询使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MyBatis—多表查询使用

目录

一:多张数据表写入同一个实体类

二:多表查询 一对一

三:多表查询 一对多

四:多表查询 多对多


一:多张数据表写入同一个实体类

现在有两张表。一张student表,一张class表

  

 实体类

@Data
public class ClassAndStudent {
    private int cid;
    private String course;
    private int tid;
    //以上为class表数据,以下为Student表数据
    private int sid;
    private String sname;
    private String sbirth;
    private String sgender;
}

Dao层

@Repository
public interface UseXmlDao {
    List findAll();
}

Service层

//接口层
@Service
public interface UserService {
   List findAll();
}
//实现接口层
@Service
public class UserServiceImp implements UserService {

    @Autowired
    private UseXmlDao useXmlDao;

    @Override
    public List findAll() {
        return useXmlDao.findAll();
}

Controller层

@RestController
public class UserController {

    @Autowired
    private UserService userService;
    
    @RequestMapping ("/duobiao")
    public @ResponseBody List findAll(){
        List classAndStudentList = userService.findAll();
        return classAndStudentList;
    }
}

XML

    
        select * from student,class
    

输出结果(笛卡儿积)

 注意!使用这种方法进行多表查询时,

  • 实体类中有哪些属性,输出结果就有哪些属性,
  • sql语句中如果只查询其中一些属性,实体类中未查询的属性会显示 0 或 null

例如:去掉课程和生日属性,输出结果页没有

@Data
public class ClassAndStudent {
    private int cid;
//    private String course;
    private int tid;
    private int sid;
    private String sname;
//    private String sbirth;
    private String sgender;
}

无课程和生日字段 

例如:查询学生ID,学生姓名,课程名称

   
        select * from aa_order,aa_user
        where aa_order.u_id  = aa_user.u_id 
    

输出结果

 

 多表查询使用 resultMap 进行二次封装

一对一使用 association

  • property:为当前实体(Order)中的属性名称(Private User user);
  • javaType:为当前实体(Order)中属性的类型

三:多表查询 一对多

user实体类

@Data
public class User {
    private int uid;
    private String username;
    private String password;
    private String gender;
    private List orderList;     //用于查询其他Order
}

XML


    
        
        
        
        
        
         //property为当前集合名称     ofType:集合中的数据类型
        
            
            
            
        
    
    

输出结果

 一次多使用 collection

  • property: 为当前集合名称    
  • ofType:集合中的数据类型

四:多表查询 多对多

        。。。。 太复杂的 我觉得不会让我写 哈哈 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1020220.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号