日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

14、mybatis多表关联查询 association定义关联对象封装规则及懒加载

發(fā)布時(shí)間:2025/3/19 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 14、mybatis多表关联查询 association定义关联对象封装规则及懒加载 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • 1、使用association單步查詢
      • 1)、EmployeeMapper
      • 2)、EmployeeMapper.xml
      • 3)、Test
    • 2、使用association進(jìn)行分步查詢
      • 4)、DeptMapper
      • 5)、DeptMapper.xml
      • 6)、mybatis-config.xml
      • 7)、EmployeeMapper
      • 8)、EmployeeMapper.xml
      • 9)、Test
    • 3、懶加載
      • 10)mybatis-config.xml

1、使用association單步查詢

1)、EmployeeMapper

package com.mi.dao;import com.mi.pojo.Employee; import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Param;import java.util.List; import java.util.Map;public interface EmployeeMapper {//查詢員工及部門public Employee getEmpAndDept(Integer id); }

2)、EmployeeMapper.xml

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--指定為接口的全類名--> <mapper namespace="com.mi.dao.EmployeeMapper"><!--使用association定義單個(gè)對(duì)象的封裝--><resultMap id="myEmpAndEmp2" type="com.mi.pojo.Employee"><id column="id" property="id"/><result column="last_name" property="lastName"/><result column="gender" property="gender"/><!--association可以指定聯(lián)合的javaBean對(duì)象property="dept" 指定哪個(gè)屬性是聯(lián)合的對(duì)象javaType:指定這個(gè)屬性對(duì)象的類型[不能省略]--><association property="dept" javaType="com.mi.pojo.Dept"><result column="d_id" property="id"/><result column="dept_name" property="deptName"/></association></resultMap><!--關(guān)聯(lián)查詢員工及部門--><select id="getEmpAndDept" resultMap="myEmpAndEmp2">select e.id,e.last_name, e.gender,d.id d_id,d.dept_name dept_namefrom employee e ,dept dwhere e.d_id = d.id and e.id = #{id}</select> </mapper>

3)、Test

@Testpublic void getEmpAndDept() throws IOException {//1、獲取SqlSessionFactory對(duì)象SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();//2、獲取Sqlsesion對(duì)象SqlSession sqlSession = sqlSessionFactory.openSession();try {//3、獲取接口的實(shí)現(xiàn)類對(duì)象//會(huì)為接口自動(dòng)創(chuàng)建一個(gè)代理對(duì)象,代理對(duì)象去執(zhí)行增刪改查方法EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);Employee employee = mapper.getEmpAndDept(3);System.out.println(employee);System.out.println(employee.getDept());}finally {sqlSession.close();}}

2、使用association進(jìn)行分步查詢

文章目錄

    • 1、使用association單步查詢
      • 1)、EmployeeMapper
      • 2)、EmployeeMapper.xml
      • 3)、Test
    • 2、使用association進(jìn)行分步查詢
      • 4)、DeptMapper
      • 5)、DeptMapper.xml
      • 6)、mybatis-config.xml
      • 7)、EmployeeMapper
      • 8)、EmployeeMapper.xml
      • 9)、Test
    • 3、懶加載
      • 10)mybatis-config.xml

4)、DeptMapper

package com.mi.dao;import com.mi.pojo.Dept;public interface DeptMapper {public Dept getDeptById(Integer id); }

5)、DeptMapper.xml

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--指定為接口的全類名--> <mapper namespace="com.mi.dao.DeptMapper"><select id="getDeptById" resultType="com.mi.pojo.Dept">select id,dept_name deptName from dept where id = #{id}</select></mapper>

6)、mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration><settings><setting name="mapUnderscoreToCamelCase" value="true"/></settings><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/mybatis"/><property name="username" value="root"/><property name="password" value="root"/></dataSource></environment></environments><mappers><mapper resource="mapper/EmployeeMapper.xml"/><mapper resource="mapper/DeptMapper.xml"/></mappers> </configuration>

7)、EmployeeMapper

package com.mi.dao;import com.mi.pojo.Employee; import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Param;import java.util.List; import java.util.Map;public interface EmployeeMapper {//查詢員工及部門public Employee getEmpByIdStep(Integer id); }

8)、EmployeeMapper.xml

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--指定為接口的全類名--> <mapper namespace="com.mi.dao.EmployeeMapper"><!--使用association進(jìn)行分步查詢1、先按照員工ID查詢員工信息2、根據(jù)查詢員工信息中的d_id值去部門表查出部門信息3、部門設(shè)置到員工中--><resultMap id="myEmpAndDeptStep" type="com.mi.pojo.Employee"><id column="id" property="id"/><result column="last_name" property="lastName"/><result column="gender" property="gender"/><!--association定義關(guān)聯(lián)對(duì)象封裝規(guī)則select :表明當(dāng)前屬性是調(diào)用select指定的方法查出的結(jié)果column : 指定將哪一列的值傳給這個(gè)方法流程:使用select 指定的方法(傳入column指定的這列參數(shù)的值)查出對(duì)象,并封裝給property--><association property="dept" select="com.mi.dao.DeptMapper.getDeptById" column="d_id"></association></resultMap><select id="getEmpByIdStep" resultMap="myEmpAndDeptStep" >select * from employee e where id = #{id}</select> </mapper>

9)、Test

@Testpublic void getEmpByIdStep() throws IOException {//1、獲取SqlSessionFactory對(duì)象SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();//2、獲取Sqlsesion對(duì)象SqlSession sqlSession = sqlSessionFactory.openSession();try {//3、獲取接口的實(shí)現(xiàn)類對(duì)象//會(huì)為接口自動(dòng)創(chuàng)建一個(gè)代理對(duì)象,代理對(duì)象去執(zhí)行增刪改查方法EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);Employee employee = mapper.getEmpByIdStep(3);System.out.println(employee);System.out.println(employee.getDept());}finally {sqlSession.close();}}

3、懶加載

10)mybatis-config.xml

在association進(jìn)行分步查詢的基礎(chǔ)上,增加懶加載配置

修改部分:

<!--延遲加載的全局開關(guān)--><setting name="lazyLoadingEnabled" value="true"/><!--任何方法的調(diào)用都會(huì)加載該對(duì)象的所有屬性--><setting name="aggressiveLazyLoading" value="false"/>

全部配置

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration><settings><setting name="mapUnderscoreToCamelCase" value="true"/><!--Oracle數(shù)據(jù)庫需要指定數(shù)據(jù)為空的時(shí)候值為null,否則默認(rèn)為OTHER,Oracle不支持--><setting name="jdbcTypeForNull" value="NULL"/><!--延遲加載的全局開關(guān)--><setting name="lazyLoadingEnabled" value="true"/><!--任何方法的調(diào)用都會(huì)加載該對(duì)象的所有屬性--><setting name="aggressiveLazyLoading" value="false"/></settings><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/mybatis"/><property name="username" value="root"/><property name="password" value="root"/></dataSource></environment></environments><mappers><mapper resource="mapper/EmployeeMapper.xml"/><mapper resource="mapper/DeptMapper.xml"/></mappers> </configuration>

文章目錄

    • 1、使用association單步查詢
      • 1)、EmployeeMapper
      • 2)、EmployeeMapper.xml
      • 3)、Test
    • 2、使用association進(jìn)行分步查詢
      • 4)、DeptMapper
      • 5)、DeptMapper.xml
      • 6)、mybatis-config.xml
      • 7)、EmployeeMapper
      • 8)、EmployeeMapper.xml
      • 9)、Test
    • 3、懶加載
      • 10)mybatis-config.xml

總結(jié)

以上是生活随笔為你收集整理的14、mybatis多表关联查询 association定义关联对象封装规则及懒加载的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩欧美福利视频 | 国产网红无码精品视频 | 日本特黄一级大片 | 亚洲精品中文字幕在线播放 | 久久精品国产精品亚洲 | 欧洲精品在线播放 | 搞中出| 国产资源站 | 你懂的视频网站 | 国内自拍第一页 | av网站黄色 | 亚洲AV无码国产精品播放在线 | 无码国产精品久久一区免费 | japan粗暴video蹂躏 | 观看av免费 | 国产成人精品一区二区三区无码熬 | 青青免费视频 | 四色成人av永久网址 | 成人做爰100 | 国产黄色片子 | 美女激情av| 少妇又色又爽又黄的视频 | 在线免费小电影 | 精品久久中文 | 一级毛片aa| 亚洲在线一区 | 欧美巨乳在线 | 日韩在线中文字幕 | 一区二区欧美日韩 | 精品国偷自产一区二区三区 | 久久久久久久久久久国产 | 久久日本视频 | 免费超碰在线 | 成年人福利网站 | 午夜精品久久久久久久99热黄桃 | 欧美日韩图片 | 污污的网站在线免费观看 | 亚洲色图狠狠干 | 亚洲精品国产精品乱码不卡√香蕉 | 亚洲色图欧美激情 | 亚洲第一成人在线 | 国产精品尤物 | 毛片啪啪啪 | 日韩av不卡电影 | 李丽珍裸体午夜理伦片 | 午夜不卡影院 | 在线免费观看国产视频 | 在线观看黄色动漫 | 亚洲精品在线免费 | 另一种灿烂生活 | 日本大尺度吃奶做爰视频 | 欧美日韩免费在线 | 欧美cccc极品丰满hd | 欧美性猛交久久久久 | 老子影院午夜伦不卡大全 | 日本在线视频播放 | 欧美一二三区 | 亚洲综合欧美 | 国产精品久久国产精品 | 欧美一区在线观看视频 | 日韩三级中文 | 在线观看黄色av网站 | 人妻无码中文字幕免费视频蜜桃 | av免播放器在线观看 | 福利视频亚洲 | 国产伦精品一区二区三区妓女 | 国产r级在线观看 | 日本美女动态图 | 苍井空浴缸大战猛男120分钟 | 美女的胸给男人玩视频 | 亚洲一区在线观 | 国产精品com| 九色porny蝌蚪视频 | 长篇乱肉合集乱500小说日本 | 少妇搡bbbb搡bbb搡打电话 | 国产骚b | 污污免费视频 | 天天玩天天操 | 91资源站| 成人精品视频网站 | a级片在线播放 | 国产视频69 | 中文字幕日韩精品无码内射 | 私人影院毛片 | 福利视频三区 | 国产丝袜在线播放 | 亚洲精品区 | 精品一区在线视频 | 欧洲亚洲女同hd | 好吊色欧美一区二区三区视频 | 国产另类精品 | 28一20岁女人一级 | 亚洲影视在线 | 狠狠夜夜 | 久久久久这里只有精品 | 在线观看岛国av | 五月婷婷六月合 | 国产美女视频91 | 五月婷激情 |