六、注解方式实现关联查询

来源:互联网 发布:合肥市行知学校前身 编辑:程序博客网 时间:2024/06/06 14:05

六、注解方式实现关联查询

1.创建表集添加数据参考上一章


2.定义实体类

前两步参考上一章


3.编写对应的dao

ClassesDao.java
package com.mybatis.dao;import java.util.List;import org.apache.ibatis.annotations.Many;import org.apache.ibatis.annotations.One;import org.apache.ibatis.annotations.Result;import org.apache.ibatis.annotations.Results;import org.apache.ibatis.annotations.Select;import com.mybatis.entity.Classes;import com.mybatis.entity.Teacher;public interface ClassesDao {//一次性查找@Select("select c.c_id cid,c.c_name cname,c.teacher_id teacher_id,t.t_id tid,t.t_name tname from class c,teacher t where c.teacher_id=t.t_id")@Results(value={@Result(id=true,column="cid",property="c_id"),@Result(column="cname",property="c_name"),@Result(column="tid",property="teacher.t_id"),@Result(column="tname",property="teacher.t_name")})public List<Classes> getAllClasses();//多次查找@Select("select * from class")@Results(value={@Result(id=true,column="c_id",property="c_id"),@Result(column="c_name",property="c_name"),@Result(one=@One(select="com.mybatis.dao.TeacherDao.getTeacherById"),column="teacher_id",property="teacher")})public List<Classes> getAllClasses2();@Select("select * from class")@Results(value={@Result(id=true,column="c_id",property="c_id"),@Result(column="c_name",property="c_name"),@Result(one=@One(select="com.mybatis.dao.TeacherDao.getTeacherById"),column="teacher_id",property="teacher"),@Result(many=@Many(select="com.mybatis.dao.StudentDao.getStudentByClassId"),column="c_id",property="students")})public List<Classes> getAllClasses4();}
TeacherDao.java
package com.mybatis.dao;import org.apache.ibatis.annotations.Select;import com.mybatis.entity.Teacher;public interface TeacherDao {@Select("select * from teacher where t_id = #{t_id}")public Teacher getTeacherById(int t_id);}
StudentDao.java
package com.mybatis.dao;import java.util.List;import org.apache.ibatis.annotations.Select;import com.mybatis.entity.Student;public interface StudentDao {@Select("select * from student where s_id = #{s_id}")public Student getStudentById(int id);@Select("select * from student where class_id = #{c_id}")public List<Student> getStudentByClassId(int c_id);}
4.在conf.xml文件中注册
<mappers><mapper class="com.mybatis.dao.ClassesDao" /><mapper class="com.mybatis.dao.TeacherDao" /><mapper class="com.mybatis.dao.StudentDao" /><mapper class="com.mybatis.dao.EmployeeDao" /></mappers>
5.测试
package com.mybatis.test;import org.apache.ibatis.session.SqlSession;import org.junit.Test;import com.mybatis.dao.ClassesDao;import com.mybatis.dao.StudentDao;import com.mybatis.dao.TeacherDao;import com.mybatis.util.DbUtil;public class ClassesTest {SqlSession session = DbUtil.getSession();ClassesDao classesDao = session.getMapper(ClassesDao.class);@Testpublic void selectAllClasses() {System.out.println(classesDao.getAllClasses());System.out.println(classesDao.getAllClasses2());System.out.println(classesDao.getAllClasses4());}}


原创粉丝点击