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.结果集映射
- @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),一对一
- @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);
- }
- 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类
- 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);
link: http://blog.csdn.net/naruto_mr/article/details/48207437