mybatis08--关联查询多对一
根据省会的id查询出省会和对应国家的信息
01.多表的连接查询
修改对应的实体类信息
/***国家的实体类*/ public class Country {private Integer cId; //国家的编号private String cName; //国家的名称public Integer getcId() {return cId;}public void setcId(Integer cId) {this.cId = cId;}public String getcName() {return cName;}public void setcName(String cName) {this.cName = cName;}public Country(Integer cId, String cName) {super();this.cId = cId;this.cName = cName;}public Country() {super();}@Overridepublic String toString() {return "Country [cId=" + cId + ", cName=" + cName ;}}
/*** *省会对应的实体类*/ public class Provincial {private Integer pId; //省会的编号private String pName; //省会名称//关联的国家属性private Country country;public Country getCountry() {return country;}public void setCountry(Country country) {this.country = country;}public Integer getpId() {return pId;}public void setpId(Integer pId) {this.pId = pId;}public String getpName() {return pName;}public void setpName(String pName) {this.pName = pName;}public Provincial(Integer pId, String pName) {super();this.pId = pId;this.pName = pName;}public Provincial() {super();}@Overridepublic String toString() {return "Provincial [pId=" + pId + ", pName=" + pName + ", country="+ country + "]";}}
修改对应的dao和mapper
public interface ProvincialDao {/*** 根据省会的id查询出省会和对应国家的信息 */Provincial selectProvincialById(Integer pId); }
<?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.ProvincialDao"><!-- 这里的resultMap和之前使用的不一样,哪怕属性和字段一致 也要书写因为mybatis在底层封装的时候,是根据我们resultMap中写的属性来的 --><resultMap type="Provincial" id="provincialMap"><id property="pId" column="pid"/><result property="pName" column="pname"/><!-- 设置关联的属性 --><association property="country" javaType="Country"><id property="cId" column="cid"/><result property="cName" column="cname"/></association></resultMap><!-- 这是单表的关联查询 不经常使用 因为 不能使用延迟加载 --><select id="selectProvincialById" resultMap="provincialMap">select cid,cname,pid,pname from country,provincialwhere cid=countryid and pid=#{xxx} <!-- #{xxx} 参数的占位符 --></select> </mapper>
mybatis.xml文件管理mapper文件
<!-- 加载映射文件信息 --><mappers><mapper resource="cn/bdqn/dao/ProvincialMapper.xml" /></mappers>
测试类代码
public class ProvincialTest {ProvincialDao dao;SqlSession session;@Beforepublic void before() {// 因为需要关闭session 需要把session提取出去session = SessionUtil.getSession();dao = session.getMapper(ProvincialDao.class);}@Afterpublic void after() {if (session != null) {session.close();}}/*** 根据省会的id查询出省会和对应国家的信息 */@Testpublic void test1() {Provincial provincial = dao.selectProvincialById(1);System.out.println(provincial);}}
02.使用单表的单独查询
只需要修改mapper文件内容 其他代码不变
<?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.ProvincialDao"><select id="selectCountryByProvincialId" resultType="Country">select cid,cname from country where cid=#{xxx}<!--#{xxx}就是resultMap 中 association节点中的column属性 --></select><resultMap type="Provincial" id="provincialMap"><id property="pId" column="pid"/><result property="pName" column="pname"/><!-- 设置关联的属性 select:关联的查询结果 --><association property="country" javaType="Country"select="selectCountryByProvincialId" column="countryid" /></resultMap><!-- 多表的单独查询 常用的方式 可以使用延迟加载策略 --><select id="selectProvincialById" resultMap="provincialMap">select pid,pname,countryid from provincialwhere pid=#{xxx} <!-- #{xxx} 用户传递参数的占位符 --></select></mapper>
转载于:https://www.cnblogs.com/HHR-SUN/p/7201562.html
mybatis08--关联查询多对一相关推荐
- NHibernate之旅(11):探索多对多关系及其关联查询
本节内容 多对多关系引入 多对多映射关系 多对多关联查询 1.原生SQL关联查询 2.HQL关联查询 3.Criteria API关联查询 结语 多对多关系引入 让我们再次回顾在第二篇中建立的数据模型 ...
- java多对多关联数据操作,hibernate实施多对多关联查询时,关联表数据被删除
hibernate执行多对多关联查询时,关联表数据被删除 本帖最后由 binbb521 于 2012-12-04 11:48:29 编辑 S2SH框架开发的网站,执行两个多对多关系的表查询时,关联两个 ...
- 对于多对多关系的对象,如何建表与关联查询(转载)
(一)背景介绍 在数据库中建表时,很容易遇到一种情况:一个学生选修了多门课,而每门课有多名学生选修,"学生"和"课程"之间就是典型的多对多关系. (二)如何 ...
- SpringBoot实现1对1、1对多、多对多关联查询——基于SpringBoot和Vue的后台管理系统项目系列博客(十八)
系列文章目录 系统功能演示--基于SpringBoot和Vue的后台管理系统项目系列博客(一) Vue2安装并集成ElementUI--基于SpringBoot和Vue的后台管理系统项目系列博客(二) ...
- Mybatis的多表关联查询(多对多)
Mybatis的多表关联查询(多对多) 项目目录结构 实现 Role 到 User 多对多 业务要求 用户与角色的关系模型 编写角色实体类 编写 Role 持久层接口 实现的 SQL 语句 编写映射文 ...
- mybatis实现多对多关联查询(超详细版)
mybatis实现多对多关联查询XML实现 在开发过程中,持久层架mybatis为我们封装了SQL操作,只需要提供相应的SQL语句即可查询出结果,若结合逆向工程插件便可免去写一些简单SQL的繁琐工 ...
- MyBatis 如何实现一个多对多的关联查询呢?
转自: MyBatis 如何实现一个多对多的关联查询呢? 下文将通过示例的方式,讲述多对多的关联查询,如下所示: 例 ,一个订单可以有多种商品, 一种商品可以对应多个订单, 订单与商品就是多对多的级联 ...
- mybatis一对多关联查询_一对一,一对多,多对多查询及延迟加载(N+1问题)分析
推荐学习 重识SSM,"超高频面试点+源码解析+实战PDF",一次性干掉全拿走 全网独家的"MySQL高级知识"集合,骨灰级收藏,手慢则无 "吃&qu ...
- 数据库学习day_03:关联关系/ 关联查询/ JDBC
关联关系 创建表时,表与表之间存在的业务关系 外键: 用来建立关系的字段称为外键 有哪些关系: 一对一:有AB两张表,A表的一条数据对应B表的一条,同时B表的1条也对应A表的一条,称为一对一关系. 如 ...
- asp多表查询并显示_SpringBoot系列(五):SpringBoot整合Mybatis实现多表关联查询
本文我们将继续分享介绍Spring Boot在整合Mybatis开发企业级应用时其他典型的业务场景,即Mybatis是如何实现多表关联查询时将查询结果集与对象进行映射的,主要的内容包含"一对 ...
最新文章
- ZooKeeper和CAP理论及一致性原则
- __slots__的作用
- BugKuCTF 加密 ok
- 2019年第十届蓝桥杯 - 省赛 - C/C++大学A组 - D. 迷宫
- Java基础IO流(五)RandomAccessFile
- 计算机基础知识与程序设计二,计算机基础与程序设计.doc
- OAuth2实现原理
- Fantom已开始网络升级,大约需2个小时
- Python-初体验
- 关于使用Navicat
- 如何在ogre游戏界面添加自己的信息,比如显示某变量的值
- 描边图标,用PS绘制简单的书本图标
- STM32 rtc唤醒 低功耗待机模式 避免iwdog看门狗方案
- MySQL学习笔记(12)—— SQL触发器:
- kk5.0电脑版 服务器信息,1 月 2017 累积更新 5.0.8308.984 Lync Server 2013 web 组件服务器...
- Android N DisplayManager服务解析(二)
- python使用金山词霸的翻译功能(调试工具断点的使用)
- 国内头部高科技企业招聘:大数据方向
- List接口(ArrayList集合和LinkedList集合)
- HTML函数多个条件并列,countifs多个并列条件(countifs同一列2个条件