多个学生对应一个老师
对于老师来说:关联多个学生, 集合
1.建表省略
注意主外键之间的关系
2.测试环境的搭建
导包mybatis核心配置文件mybatis工具类实体类的编写dao层接口的实现mapper配置文件的编写测试
3.导包
4.0.0 org.example mybatisApom 1.0-SNAPSHOT mybatis1 mybatis2 mybatis3 mybatis4 mybatis5 mybatis6 8 8 org.mybatis mybatis3.5.7 mysql mysql-connector-java8.0.27 org.projectlombok lombok1.18.12 log4j log4j1.2.17 junit junit4.12 test
4.mybatis核心配置文件的编写
5.mybatis工具类的编写
package com.momo.utils;
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 java.io.IOException;
import java.io.InputStream;
public class MybatisUtils {
static SqlSessionFactory sqlSessionFactory;
static {
String path = "mybatis-config.xml";
try {
InputStream is = Resources.getResourceAsStream(path);
SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
sqlSessionFactory = ssfb.build(is);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession();
}
}
6.实体类的编写
package com.momo.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student {
private int sid;
private String name;
private int age;
private String sex;
private Date birthday;
private int tid;
}
package com.momo.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Teacher {
private int tid;
private String name;
private List students;
}
7.dao层接口的实现
package com.momo.dao;
import com.momo.entity.Teacher;
import java.util.List;
public interface TeacherMapper {
//查询所有教师信息
List findTeacherAll();
}
8.mapper配置文件的编写
select t.tid,t.name,s.sid,s.name,s.age,s.sex,s.birthday from student s,teacher t where t.tid = s.tid;
ofType为Java集合的泛型
javaType为对象的类型
9.测试
package com.momo.test;
import com.momo.dao.TeacherMapper;
import com.momo.entity.Teacher;
import com.momo.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.After;
import org.junit.Before;
import java.util.List;
public class Test {
private SqlSession sqlSession;
private TeacherMapper teacherMapper;
@Before
public void init(){
sqlSession = MybatisUtils.getSqlSession();
teacherMapper = sqlSession.getMapper(TeacherMapper.class);
}
@After
public void close(){
sqlSession.close();
}
@org.junit.Test
public void test1(){
List teacherAll =
teacherMapper.findTeacherAll();
teacherAll.forEach(System.out::println);
}
}
注意:
复杂属性集合时在mapper配置文件要用collection来配置



