java 中MyBatis注解映射的實例詳解
更新時間:2017年09月05日 14:22:42 作者:yunlian0621
這篇文章主要介紹了java 中MyBatis注解映射的實例詳解的相關(guān)資料,這里提供實例幫助大家理解這部分內(nèi)容,需要的朋友可以參考下
java 中MyBatis注解映射的實例詳解
1.普通映射
@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.結(jié)果集映射
@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.關(guān)系映射
1),一對一
@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)一對多
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); }
Java代碼
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.動態(tài)sql注解映射
provider類
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接口
@SelectProvider(type=StudentDynaSqlProvider.class,method="getStudent") public List<Student> getStudents(Map<String,Object> map);
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Java如何調(diào)用wsdl的webservice接口
這篇文章主要介紹了Java如何調(diào)用wsdl的webservice接口問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05EasyUi+Spring Data 實現(xiàn)按條件分頁查詢的實例代碼
這篇文章主要介紹了EasyUi+Spring Data 實現(xiàn)按條件分頁查詢的實例代碼,非常具有實用價值,需要的朋友可以參考下2017-07-07解決nacos報錯java.lang.ClassNotFoundException: com.netflix.
這篇文章主要介紹了解決nacos報錯java.lang.ClassNotFoundException: com.netflix.config.DynamicPropertyFactory的問題,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06