zoukankan      html  css  js  c++  java
  • [刘阳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();
        }
        
    }
  • 相关阅读:
    当el-input输入多行内容,反显时,字符串需要换行显示
    【前端】记录自己在leetcode上的刷题之路
    本地提代码到github上,不显示贡献值的问题
    关于对象的深拷贝和浅拷贝
    js判断两个数值区间是否存在重叠或覆盖
    解决vue-print-nb打印el-table,不同分辨率下,打印显示不全的问题
    vue实现置顶功能
    el-table设置自定义表头,当表头内容过长时,鼠标悬浮显示完整内容
    省市用element级联选择器,构造树形结构的数据(两层)
    STL隐蔽知识点
  • 原文地址:https://www.cnblogs.com/liuyangjava/p/6627301.html
Copyright © 2011-2022 走看看