zoukankan      html  css  js  c++  java
  • MyBatis (十) 注解映射

    普通映射
     
    [html] view plain copy
     
    @Select("select * from mybatis_Student where id=#{id}")
    public Student getStudent(int id);
    @Insert("insert into mybatis_Student (name, age, remark, pic,grade_id,address_id) values (#{name},#{age},#{remark}, #{pic},#{grade.id},#{address.id})")
    public int insert(Student student);
    @Update("update mybatis_Student set name=#{name},age=#{age} where id=#{id}")
    public int update(Student student);
    @Delete("delete from mybatis_Student where id=#{id}")
    public int delete(int id);
     
     
    2.结果集映射
     
    [html] view plain copy
     
    @Select("select * from mybatis_Student")
    @Results({
    @Result(id=true,property="id",column="id"),
    @Result(property="name",column="name"),
    @Result(property="age",column="age")
    })
    public List<Student> getAllStudents();
     
     
    3.关系映射
     
    1),一对一
     
    [html] view plain copy
     
    @Select("select * from mybatis_Student")
    @Results({
    @Result(id=true,property="id",column="id"),
    @Result(property="name",column="name"),
    @Result(property="age",column="age"),
    @Result(property="address",column="address_id",one=@One(select="com.skymr.mybatis.mappers.AddressMapper.getAddress"))
    })
    public List<Student> getAllStudents();
     
    2)一对多
     
    [html] view plain copy
     
    package com.skymr.mybatis.mappers;
     
    import org.apache.ibatis.annotations.Many;
    import org.apache.ibatis.annotations.Result;
    import org.apache.ibatis.annotations.Results;
    import org.apache.ibatis.annotations.Select;
     
    import com.skymr.mybatis.model.Grade;
     
    public interface Grade2Mapper {
     
    @Select("select * from mybatis_grade where id=#{id}")
    @Results({
    @Result(id=true,column="id",property="id"),
    @Result(column="grade_name",property="gradeName"),
    @Result(property="students",column="id",many=@Many(select="com.skymr.mybatis.mappers.Student2Mapper.getStudentsByGradeId"))
    })
    public Grade getGrade(int id);
    }
     
     
    [html] view plain copy
     
    package com.skymr.mybatis.mappers;
     
    import java.util.List;
     
    import org.apache.ibatis.annotations.Delete;
    import org.apache.ibatis.annotations.Insert;
    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 org.apache.ibatis.annotations.Update;
     
    import com.skymr.mybatis.model.Student;
     
    public interface Student2Mapper {
     
    @Select("select * from mybatis_Student where id=#{id}")
    public Student getStudent(int id);
    @Insert("insert into mybatis_Student (name, age, remark, pic,grade_id,address_id) values (#{name},#{age},#{remark}, #{pic},#{grade.id},#{address.id})")
    public int insert(Student student);
    @Update("update mybatis_Student set name=#{name},age=#{age} where id=#{id}")
    public int update(Student student);
    @Delete("delete from mybatis_Student where id=#{id}")
    public int delete(int id);
     
    @Select("select * from mybatis_Student")
    @Results({
    @Result(id=true,property="id",column="id"),
    @Result(property="name",column="name"),
    @Result(property="age",column="age"),
    @Result(property="address",column="address_id",one=@One(select="com.skymr.mybatis.mappers.AddressMapper.getAddress"))
    })
    public List<Student> getAllStudents();
    @Select("select * from mybatis_Student where grade_id=#{gradeId}")
    @Results({
    @Result(id=true,property="id",column="id"),
    @Result(property="name",column="name"),
    @Result(property="age",column="age"),
    @Result(property="address",column="address_id",one=@One(select="com.skymr.mybatis.mappers.AddressMapper.getAddress"))
    })
    public List<Student> getStudentsByGradeId(int gradeId);
    }
     
     
     
    4.动态sql注解映射
     
    provider类
     
    [html] view plain copy
     
    package com.skymr.mybatis.mappers.provider;
     
    import java.util.Map;
     
    import org.apache.ibatis.jdbc.SQL;
     
    import com.skymr.mybatis.model.Student;
     
    public class StudentDynaSqlProvider {
     
    public String insertStudent(final Student student){
    return new SQL(){
    {
    INSERT_INTO("mybatis_Student");
    if(student.getName() != null){
    VALUES("name","#{name}");
    }
    if(student.getAge() > 0){
    VALUES("age","#{age}");
    }
    }
    }.toString();
    }
     
    public String updateStudent(final Student student){
    return new SQL(){
    {
    UPDATE("mybatis_Student");
    if(student.getName() != null){
    SET("name=#{name}");
    }
    if(student.getAge() > 0){
    SET("age=#{age}");
    }
    WHERE("id=#{id}");
    }
    }.toString();
    }
     
    public String getStudent(final Map<String,Object> map){
    return new SQL(){
    {
    SELECT("*");
    FROM("mybatis_Student");
    if(map.containsKey("name")){
    WHERE("name like #{name}");
    }
    if(map.containsKey("age")){
    WHERE("age=#{age}");
    }
    }
    }.toString();
    }
     
    public String deleteStudent(){
    return new SQL(){
    {
    DELETE_FROM("mybatis_Student");
    WHERE("id=#{id}");
    }
    }.toString();
    }
    }
     
    Mapper接口
    [html] view plain copy
     
    @SelectProvider(type=StudentDynaSqlProvider.class,method="getStudent")
    public List<Student> getStudents(Map<String,Object> map);
  • 相关阅读:
    enum
    高可用复用类
    int 和 Integer 的区别
    MysqlMd5加密
    软件测试例子
    Wordcount
    大气登录页面
    生成二维码的JAVA
    多态的理解
    打印低头思故乡 java
  • 原文地址:https://www.cnblogs.com/bkyliufeng/p/6291741.html
Copyright © 2011-2022 走看看