[刘阳Java]_MyBatis_其他方式来实现多表查询的操作_第9讲
MyBatis其他方式来实现多表查询的操作
- 利用Java中的集合框架(List,Map)
- 其中List存储多个查询返回的记录
- Map查询返回字段,同时记录表中一条数据
<?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="com.gxa.mapper.StudentMapper_2"> <select id="getStudent" resultType="java.util.HashMap"> SELECT sid,sname,a.t_id,t_name FROM student a, teacher b WHERE a.t_id=b.t_id </select> </mapper>
package com.gxa.test; import java.io.IOException; import java.io.Reader; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Test; import com.gxa.pojo.Student; import com.gxa.pojo.Teacher; import com.gxa.pojo.Team; public class Test03 { private static SqlSessionFactorysqlSessionFactory; private static Reader reader; static { try { reader = Resources.getResourceAsReader("config.xml"); sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); } catch (IOException e) { e.printStackTrace(); } } @Test public void m01() { SqlSessionsqlSession = sqlSessionFactory.openSession(); String sql = "com.gxa.mapper.StudentMapper.getStudent"; List<Student> list = sqlSession.selectList(sql); for (Student student : list) { System.out.println(student.getSname() + "====" + student.getTeacher().getT_name()); } sqlSession.close(); } @Test public void m02() { SqlSessionsqlSession = sqlSessionFactory.openSession(); String sql = "com.gxa.mapper.TeacherMapper.getTeacher"; Teacher teacher = sqlSession.selectOne(sql); List<Student> student = teacher.getStudent(); for (Student s : student) { System.out.println(teacher.getT_name() + "===" + s.getSname()); } sqlSession.close(); } @Test public void m03() { SqlSessionsqlSession = sqlSessionFactory.openSession(); String sql = "com.gxa.mapper.StudentMapper_2.getStudent"; List<Map<String, Object>> list = sqlSession.selectList(sql); System.out.println(list); sqlSession.close(); } }
分类:
MyBatis_学习笔记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下