MyBatis其他方式來實現(xiàn)多表查詢的操作
MyBatis其他方式來實現(xiàn)多表查詢的操作
利用Java中的集合框架(List,Map)
其中List存儲多個查詢返回的記錄
Map查詢返回字段,同時記錄表中一條數(shù)據(jù)
<?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();
? ? }
}