现在有这么一个需求:

        当查询这个学生信息的时候, 接着把这个学生对应的老师的信息查询出来.

    这就需要一对一进行查询.

一: 准备工作

    1. 建立数据表  

CREATE TABLE teacher(	t_id INT(11) PRIMARY KEY AUTO_INCREMENT NOT NULL,	t_name VARCHAR(255));CREATE TABLE student(	s_id INT(11) PRIMARY KEY AUTO_INCREMENT NOT NULL,	s_name VARCHAR(255),	t_id INT(11),	FOREIGN KEY(t_id) REFERENCES teacher(t_id))INSERT INTO teacher(t_name) VALUES('Tom');INSERT INTO student(s_name,t_id) VALUES('Stu1', 1);INSERT INTO student(s_name,t_id) VALUES('Stu2', 1);INSERT INTO student(s_name,t_id) VALUES('Stu3', 1);

    2. 建立对应的实体类

package com.mybatis.entities;public class Teacher {		private Integer id;	private String name;	// 写好 getter/ setter方法	// 写好 toString 方法, 便于测试	}====================================package com.mybatis.entities;public class Student {		private Integer id;	private String name;	private Teacher teacher;	// 写好 getter/ setter方法	// 写好 toString 方法, 便于测试	}

    3. 定义对应的映射文件, 并在 conf.xml 文件中注册

        由于我们只查询学生的信息, 所以, 这里指定义 Student类的映射文件 StudentMapper.xml. 如下:

二: 测试

    1. 在 StudentMapper.xml 中写入对应的查询语句, 接着进行一些配置.

 
   
 
 
  SELECT t.t_id, t.t_name, s.s_id, s.s_name, s.t_id    FROM teacher t, student s    WHERE t.`t_id`=s.`t_id` AND s.`s_id`=#{id}    
         
 
 
 
 
 
 
 
       
 
 
  SELECT s_id, s_name, t_id FROM student WHERE s_id=#{s_id}    
 
  SELECT t_id id, t_name name FROM teacher WHERE t_id=#{t_id}    
 
 
 
 
     

    2. 测试代码

package com.mybatis.test;import org.apache.ibatis.session.SqlSession;import org.junit.Test;import com.mybatis.entities.Student;import com.mybatis.util.MyBatisUtil;public class TestStudent {	@Test	public void testGetStudent1() {				SqlSession session = MyBatisUtil.getSqlSession();				String statement = "com.mybatis.entities.StudentMapper.getStudent1";		Student student = session.selectOne(statement, 1);		System.out.println(student);			}		@Test	public void testGetStudent2() {				SqlSession session = MyBatisUtil.getSqlSession();				String statement = "com.mybatis.entities.StudentMapper.getStudent2";		Student student = session.selectOne(statement, 2);		System.out.println(student);			}}// 执行结果//Student [id=2, name=Stu2, teacher=Teacher [id=1, name=Tom]]

本篇博文的源代码点击  下载.