zl程序教程

您现在的位置是:首页 >  其他

当前栏目

mybatis08–关联查询多对一详解编程语言

编程语言 详解 查询 &# 8211 关联
2023-06-13 09:20:36 时间
public String toString() { return "Provincial [pId=" + pId + ", pName=" + pName + ", country=" + country + "]";
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,provincial where 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; 

 @Before 

 public void before() { 

 // 因为需要关闭session 需要把session提取出去 

 session = SessionUtil.getSession(); 

 dao = session.getMapper(ProvincialDao.class); 

 @After 

 public void after() { 

 if (session != null) { 

 session.close(); 

 /** 

 * 根据省会的id查询出省会和对应国家的信息 

 @Test 

 public 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 


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 provincial where pid=#{xxx} !-- #{xxx} 用户传递参数的占位符 -- /select /mapper

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/12145.html

cjavaxml