• [刘阳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();
        }
        
    }
  • 相关阅读:
    永续债的会计处理
    python基于粒子群优化的投资组合优化研究
    R语言使用Metropolis- Hasting抽样算法进行逻辑回归
    R语言使用K-Means聚类可视化WiFi访问
    R语言实现拟合神经网络预测和结果可视化
    Python Monte Carlo K-Means聚类实战研究
    R语言: GARCH模型股票交易量的研究道琼斯股票市场指数
    R语言stan泊松回归Poisson regression
    R语言旅行推销员问题TSP
    在R语言和Stan中估计截断泊松分布
  • 原文地址:https://www.cnblogs.com/liuyangjava/p/6627301.html
Copyright © 2020-2023  润新知