首页 > 其他 > 详细

mybatis注解开发

时间:2020-09-11 10:16:49      阅读:61      评论:0      收藏:0      [点我收藏+]

一、一对一

/*
1、在mybatis.xml配置文件中,开启二级缓存
    <settings>
        <!--开启二级缓存-->
        <setting name="cacheEnabled" value="true"/>
    </settings>
*/
@CacheNamespace(blocking = true)// 2、启用二级缓存
public interface StudentMapper {
    Integer insertStudent(Student student);

    List<Student> selectAllStudent(Map map);

    Student selectStudentGradeById(Integer id);

    List<Student> selectStudentsByGrade(Integer gradeId);

    // 一对一通常使用立即加载(FetchType.EAGER)
    @Select("select * from student where id=#{id}")
    @Results(id = "studentMap", value = {
            @Result(id = true, column = "id", property = "id"),
            @Result(column = "id", property = "id"),
            @Result(column = "name", property = "name"),
            @Result(column = "age", property = "age"),
            @Result(column = "sex", property = "sex"),
            @Result(column = "grade_id", property = "gradeId"),
            @Result(column = "grade_id", property = "grade",
                    one = @One(select = "com.wuxi.daos.GradeMapper.selectById",
                            fetchType = FetchType.EAGER)),
    })
    Student selectStudentByIdAnno(Integer id);

    @Select("select * from student")
    @ResultMap("studentMap")
    List<Student> selectAllStudentAnno();

    @Insert("insert into student(name,age,sex,grade_id) values(#{name},#{age},#{sex},#{gradeId})")
    Integer insertStudentAnno(Student student);

    @Update("update student set name=#{name}, age=#{age}, sex=#{sex} where id=#{id}")
    Integer updateStudentByIdAnno(Student student);

    @Delete("delete from student where id=#{id}")
    Integer deleteStudentByIdAnno(Integer id);
}

二、一对多

public interface GradeMapper {
    // 注解和xml配置可以同时使用
    Grade selectById(Integer id);

    // 一对多通常使用延迟加载(FetchType.LAZY)
    @Select("select * from grade where id = #{id}")
    @Results(id = "gradeMap", value = {
            @Result(id = true, column = "id", property = "id"),
            @Result(column = "name", property = "name"),
            @Result(column = "id", property = "students",
                    many = @Many(select = "com.wuxi.daos.StudentMapper.selectStudentsByGrade",
                            fetchType = FetchType.LAZY)),
    })
    Grade selectByIdAnno(Integer id);
}

 

mybatis注解开发

原文:https://www.cnblogs.com/linding/p/13648555.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!