Mybatis註解映射

普通映射

@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")

})

public List<Student> getAllStudents();

關係映射

  • 一對一
@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();

一對多

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);

}


動態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);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章