文章目录
在Navicat premium上搭建数据库
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`id` int(10) NOT NULL,
`name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`tid` int(10) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
INDEX `fktid`(`tid`) USING BTREE,
CONSTRAINT `fktid` FOREIGN KEY (`tid`) REFERENCES `teacher` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
INSERT INTO `student` VALUES (1, '小明', 1);
INSERT INTO `student` VALUES (2, '小hong', 1);
INSERT INTO `student` VALUES (3, '小张', 1);
INSERT INTO `student` VALUES (4, '李李里', 1);
INSERT INTO `student` VALUES (5, '汪汪汪', 1);
SET FOREIGN_KEY_CHECKS = 1;
项目结构搭建
0. 初始项目
2. 新建实体类Teacher,Student
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Teacher {
private int id;
private String name;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student {
private int id;
private String name;
//学生需要关联一个老师
private Teacher teacher;
}
3. 在com.dao包下,建立TeacherMapper、StudentMapper接口
public interface TeacherMapper {
@Select("select * from teacher where id=#{tid}")
Teacher getTeacher(@Param("tid") int id);
}
public interface StudentMapper {
}
4. 在resources下的com.dao包,建立TeacherMapper.xml、StudentMapper.xml文件
把mybatis.xml
中的config全部改成mapper,就是*Mapper.xml的模样
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--configuration核心配置文件-->
<mapper>
</mapper>
5. 在核心配置文件中绑定注册我们的Mapper接口或者文件 【方式很多,随心选】
<mappers>
<!-- 这个用不了,就用下面,别死磕这里-->
<!-- <mapper resource="com/dao/*.xml" />-->
<mapper class="com.dao.TeacherMapper"/>
<mapper class="com.dao.StudentMapper"/>
</mappers>
6. 测试类查询是否能够成功
@Test
public void getTeacherById(){
SqlSession sqlSession=MybatisUtils.getSqlSession();
TeacherMapper mapper = sqlSession.getMapper(TeacherMapper.class);
Teacher teacher = mapper.getTeacher(1);
System.out.println(teacher);
sqlSession.close();
}