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();
        }
        
    }
  • 相关阅读:
    最小的linux发行版TinyCore Linux 系统,从分区安装系统开始
    目标世界上最小的Linux系统—ttylinux体验
    在虚拟机上安装树莓派系统
    天气预报查询
    树莓派做服务器,搭建Typecho博客和Owncloud云盘
    超好用的C#控制台应用模板
    一个简单好用的日志框架NLog
    让编写的单元测试同时支持 NUnit/MSTest
    使用MSTest进行单元测试入门
    C#开源日志文件实时监控工具Tail
  • 原文地址:https://www.cnblogs.com/liuyangjava/p/6627301.html
Copyright © 2011-2022 走看看