六、注解方式实现关联查询
来源:互联网 发布:合肥市行知学校前身 编辑:程序博客网 时间: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>
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());}}
阅读全文
0 0
- 六、注解方式实现关联查询
- hibernate Mysql 自增长 注解配置,表无关联的注解方式关联查询
- hibernate Mysql 自增长 注解配置,表无关联的注解方式关联查询
- hibernate Mysql 自增长 注解配置,表无关联的注解方式关联查询
- Hibernate关联查询有多种实现方式
- 推荐 六种方式 实现 Hibernate查询
- 六种方式实现hibernate查询(转)
- 六种方式实现hibernate查询
- 六种方式实现hibernate查询
- 六种方式实现hibernate查询
- 六种方式实现hibernate查询
- 六种方式实现hibernate查询
- 六种方式实现hibernate查询
- hibernate六种方式实现的查询
- 六种方式实现hibernate查询
- 六种方式实现hibernate查询
- 六种方式实现hibernate查询
- 六种方式实现hibernate查询
- HDU 1069 Monkey and Banana (dp)
- C Primer Plus(第6版)第七章答案
- leetcode(2)Add Two Numbers
- gcc编译注意事项
- Android Service解析
- 六、注解方式实现关联查询
- 第六章 创建一个基于Table的简单App(三)
- hdu 1080 Human Gene Functions
- php递归实现树状分类结构
- protobuf3在php中的使用
- 【Zookeeper】1.什么是Zookeeper
- redis持久化RDB和AOF
- 4152: [AMPPZ2014]The Captain
- android远程服务