欢迎光临散文网 会员登陆 & 注册

MyBatis其他方式来实现多表查询的操作

2020-03-31 15:44 作者:汇智知了堂  | 我要投稿

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.zlt.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.zlt.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.zlt.pojo.Student;

import com.zlt.pojo.Teacher;

import com.zlt.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.zlt.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.zlt.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.zlt.mapper.StudentMapper_2.getStudent";

        List<Map<String, Object>> list = sqlSession.selectList(sql);

        System.out.println(list);

        sqlSession.close();

    }

}


MyBatis其他方式来实现多表查询的操作的评论 (共 条)

分享到微博请遵守国家法律