本文共 5752 字,大约阅读时间需要 19 分钟。
多个学生关联一个老师
pom.xml
myBatis org.example 1.0-SNAPSHOT 4.0.0 myBatis_01 8 8 src/main/java **/*.xml **/*.properties src/main/resources **/*.xml **/*.properties log4j log4j 1.2.17 org.projectlombok lombok 1.16.10
核心配置文件mybatis-config.xml
数据库
/* Navicat Premium Data Transfer Source Server : localhost Source Server Type : MySQL Source Server Version : 50527 Source Host : localhost:3306 Source Schema : mybatis Target Server Type : MySQL Target Server Version : 50527 File Encoding : 65001 Date: 20/01/2021 12:12:55*/SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for student-- ----------------------------DROP TABLE IF EXISTS `student`;CREATE TABLE `student` ( `id` int(11) NOT NULL, `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, `tid` int(11) DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE, INDEX `tid`(`tid`) USING BTREE, CONSTRAINT `tid` FOREIGN KEY (`tid`) REFERENCES `teacher` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;SET FOREIGN_KEY_CHECKS = 1;
/* Navicat Premium Data Transfer Source Server : localhost Source Server Type : MySQL Source Server Version : 50527 Source Host : localhost:3306 Source Schema : mybatis Target Server Type : MySQL Target Server Version : 50527 File Encoding : 65001 Date: 20/01/2021 12:25:12*/SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for teacher-- ----------------------------DROP TABLE IF EXISTS `teacher`;CREATE TABLE `teacher` ( `id` int(11) NOT NULL, `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;-- ------------------------------ Records of teacher-- ----------------------------INSERT INTO `teacher` VALUES (1, 'teacher_zs');SET FOREIGN_KEY_CHECKS = 1;
实体类的构建
@Datapublic class Student { private int id; private String name; //多个学生可以是同一个老师,即多对一 private Teacher teacher;}
@Datapublic class Teacher { private int id; private String name;}
接口的构建
public interface TeacherMapper { @Select("select * from teacher where id = #{id}") Teacher getTeacherById(@Param("id") int id);}
测试类的编写
public class DaoTest { //注意导包:org.apache.log4j.Logger static Logger logger = Logger.getLogger(DaoTest.class); @Test public void test(){ try(SqlSession sqlSession = MyBatisUtils.getSqlSesion();){ TeacherMapper mapper = sqlSession.getMapper(TeacherMapper.class); Teacher teacher = mapper.getTeacherById(1); System.out.println(teacher); } }}
测试成功!!!
StudentMapper.xml
测试类
@Test public void getStudent() { try(SqlSession sqlSession = MyBatisUtils.getSqlSesion();){ StudentMapper mapper = sqlSession.getMapper(StudentMapper.class); ListstudentList = mapper.getStudents(); System.out.println(studentList); } }
实体类的编写
@Datapublic class Student { private int id; private String name; private int tid;}
@Data public class Teacher { private int id; private String name; //一个老师多个学生 private Liststudents;}
TeacherMapper接口编写方法
public interface TeacherMapper { Teacher getTeacher(@Param("id") int id);}
编写接口对应的Mapper配置文件
测试类
public class DaoTest { //注意导包:org.apache.log4j.Logger static Logger logger = Logger.getLogger(DaoTest.class); @Test public void test(){ try(SqlSession sqlSession = MyBatisUtils.getSqlSesion();){ TeacherMapper mapper = sqlSession.getMapper(TeacherMapper.class); Teacher teacher = mapper.getTeacher(1); System.out.println(teacher); } }}
转载地址:http://zeenz.baihongyu.com/