多对一处理之测试环境的搭建
搭建测试环境
1.导入lombok依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
</dependency>
2.新建实体类Teacher、Student
Teacher类
package com.xy.pojo;
import lombok.Data;
@Data
public class Teacher {
private int id;
private String name;
}
Student类
package com.xy.pojo;
import lombok.Data;
@Data
public class Student {
private int id;
private String name;
//学生需要关联一个老师
private Teacher teacher;
}
3.建立Mapper接口
TeacherMapper
package com.xy.dao;
import com.xy.pojo.Teacher;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
public interface TeacherMapper {
@Select("select * from mybatis.teacher where id = #{id}")
Teacher getTeacher(@Param("id") int id);
}
StudentMapper
package com.xy.dao;
public interface StudentMapper {
}
4.建立Mapper.xml文件
注意:这里的包不是分级的,xml文件就是保存在一个包下(也可以多次建立手动分开),包名为com.xy.dao
StudentMapper.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">
<mapper namespace="com.xy.dao.StudentMapper">
</mapper>
TeacherMapper.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">
<mapper namespace="com.xy.dao.TeacherMapper">
</mapper>
5.在核心配置文件中绑定注册我们的Mapper.xml文件
这里需要注意两点!!!
-
这里的包不是分级的,xml文件就是保存在一个包下(也可以多次建立手动分开),包名为com.xy.dao
所以寻找路径的时候不是com/xy/dao/xxxxx.xml而是com.xy.dao/xxxxx.xml
-
mapper不能用通配符
mybatis-config.xml
<!--绑定接口-->
<mappers>
<!--mapper不能用通配符 *-->
<mapper resource="com.xy.dao/TeacherMapper.xml"/>
<mapper resource="com.xy.dao/StudentMapper.xml"/>
</mappers>
6.测试查询
package com.xy.dao;
import com.xy.pojo.Teacher;
import com.xy.utils.MyBatisUtils;
import org.apache.ibatis.session.SqlSession;
public class TTest {
public static void main(String[] args) {
SqlSession sqlSession = MyBatisUtils.getSqlSession();
TeacherMapper mapper = sqlSession.getMapper(TeacherMapper.class);
Teacher teacher = mapper.getTeacher(1);
System.out.println(teacher);
sqlSession.close();
}
}