提出需求:
根据班级id查询班级信息(带老师的信息)
项目结构:

创建表和数据:<??http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PHByZSBjbGFzcz0="brush:sql;">CREATE TABLE teacher( t_id INT PRIMARY KEY AUTO_INCREMENT, t_name VARCHAR(20) ); CREATE TABLE class( c_id INT PRIMARY KEY AUTO_INCREMENT, c_name VARCHAR(20), teacher_id INT ); ALTER TABLE class ADD CONSTRAINT fk_teacher_id FOREIGN KEY (teacher_id) REFERENCES teacher(t_id); INSERT INTO teacher(t_name) VALUES('LS1'); INSERT INTO teacher(t_name) VALUES('LS2'); INSERT INTO class(c_name, teacher_id) VALUES('bj_a', 1); INSERT INTO class(c_name, teacher_id) VALUES('bj_b', 2);
Teacher实体类:
package com.atguigu.mybatis.bean;
public class Teacher {
private int id;
private String name;
public Teacher(int id, String name) {
super();
this.id = id;
this.name = name;
}
public Teacher() {
super();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Teacher [id=" + id + ", name=" + name + "]";
}
}
Classes实体类:
package com.atguigu.mybatis.bean;
public class Classes {
private int id;
private String name;
private Teacher teacher;
public Classes(int id, String name, Teacher teacher) {
super();
this.id = id;
this.name = name;
this.teacher = teacher;
}
public Classes() {
super();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Teacher getTeacher() {
return teacher;
}
public void setTeacher(Teacher teacher) {
this.teacher = teacher;
}
@Override
public String toString() {
return "Classes [id=" + id + ", name=" + name + ", teacher=" + teacher
+ "]";
}
}classesMapper.xml映射文件代码:
获取SqlSessionFactory工厂的MybatisUtils代码:
package com.atguigu.mybatis.utils;
import java.io.InputStream;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MybatisUtils {
public static SqlSessionFactory getFactory() {
String resource = "conf.xml";
InputStream inputStream = MybatisUtils.class.getClassLoader().getResourceAsStream(resource);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
return factory;
}
}
配置文件conf.xml代码:
测试类Test4代码:
package com.atguigu.mybatis.test4;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import com.atguigu.mybatis.bean.Classes;
import com.atguigu.mybatis.utils.MybatisUtils;
/*
* 测试: 一对一关联表查询
*/
public class Test4 {
public static void main(String[] args) {
SqlSessionFactory factory=MybatisUtils.getFactory();
SqlSession session=factory.openSession();
String statement="com.atguigu.mybatis.bean.classesMapper.getClass";
statement="com.atguigu.mybatis.bean.classesMapper.getClass2";
Classes c =session.selectOne(statement, 2);
System.out.println(c);
session.close();
}
}