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();
        }
        
    }
  • 相关阅读:
    线程
    开启程序子进程的方式
    multiprocess模块
    计算机网络小知识
    解决粘包问题
    网络编程相关
    反射与元类
    多态相关
    封装相关与接口
    类的继承和组合
  • 原文地址:https://www.cnblogs.com/liuyangjava/p/6627301.html
Copyright © 2011-2022 走看看