首页 > 编程知识 正文

oracle三个表关联查询,oracle多表关联

时间:2023-05-05 17:24:43 阅读:19482 作者:4171

结果类型方法

实体类

公共类订单{

私有长id;

私有字符串名称;

私密双保密;

//略

}

publicclasscustomextendsorders {

私有字符串名称;

隐私字符串sex;

私有字符串地址;

//略

}

UserMapper.xml

select u.name,u.sex,u.address,o.* from USER u left join ORDERS o

on u.id=o.user_id

结果映射方法

一对一关联

实体类

公共类事件{

私有Int id;

私有字符串名称;

私有Int cid;

私有类类类; //写也可以不写

//略

}

公共类类类{

私有Int id;

私有字符串名称;

//略

}

StudentMapper.xml

select s.id,s.name,s.cid,c.id cid,c.namecnamefromstudentsleftjoinclassroomc

on s.cid=c.id

一对多关联

实体类

公共类类类{

私有Int id;

私有字符串名称;

私有列表Stu列表;

//略

}

公共类事件{

私有Int id;

私有字符串名称;

//略

}

ClassroomMapper.xml

select c.id,c.name,s.id sid,s.namesnamefromclassroomcleftjoinstudents

on s.cid=c.id

结果类型,结果图总结:

结果类型:

角色:将查询结果一致地映射到每个sql列名、pojo属性名的pojo。

情况:展示常见明细记录。 例如,用户购买商品明细,将相关查询信息全部展示在页面上时,直接使用resultType将各记录映射到pojo,在前台遍历list(list中为pojo )即可。

结果图:使用关联和集合完成一对一和一对多的高级映射。 结果有特殊的映射要求。

关联:

角色:将相关查询信息映射到pojo对象。

如果:为了便于查询相关信息,可以使用关联将相关订单信息映射到用户对象的pojo属性。 例如,查询订单和关联用户信息。

不能使用resultType将查询结果映射到pojo对象的pojo属性。 根据查询遍历结果集的需要,选择是使用结果类型还是使用结果映射。

收集

角色:将相关查询信息映射到list集合。

如果:为了便于查询遍历相关信息,可以使用collection将相关信息映射到list集合。 例如,通过查询用户权限范围模块和模块下的菜单,使用collection将模块映射到模块列表,或将菜单列表映射到模块对象的菜单列表属性

如果无法使用resultType将查询结果映射到列表集合。

自动映射对1的相关查询

通过给对象之间的关系加上别名,连接对象属性和sql字段。

别名格式: `对象名称.属性名称`

其中`是mysql中除关键字外的内容

.点在sql命令中是关键字

实体类

公共类事件{

私有Int id;

私有字符串名称;

私有Int cid;

私有类类类; //写也可以不写

//略

}

公共类类类{

私有Int id;

私有字符串名称;

//略

}

StudentMapper.xml

select s.id,s.name,s.cid,c.id `classroom.id `,c.name `classroom.name `

fromstudentsleftjoinclassroomcons.cid=c.id

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。