MyBatis注解映射

    xiaoxiao2025-10-14  2

    1.普通映射

    [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);  
    转载请注明原文地址: https://ju.6miu.com/read-1303162.html
    最新回复(0)