最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java  中MyBatis注解映射的實(shí)例詳解

 更新時(shí)間:2017年09月05日 14:22:42   作者:yunlian0621  
這篇文章主要介紹了java 中MyBatis注解映射的實(shí)例詳解的相關(guān)資料,這里提供實(shí)例幫助大家理解這部分內(nèi)容,需要的朋友可以參考下

java  中MyBatis注解映射的實(shí)例詳解

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.動(dòng)態(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)文章

  • 超實(shí)用的Java快捷鍵(總結(jié))

    超實(shí)用的Java快捷鍵(總結(jié))

    下面小編就為大家?guī)硪黄瑢?shí)用的Java快捷鍵(總結(jié))。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • SpringCloud:feign對象傳參和普通傳參及遇到的坑解決

    SpringCloud:feign對象傳參和普通傳參及遇到的坑解決

    這篇文章主要介紹了SpringCloud:feign對象傳參和普通傳參及遇到的坑解決,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java web的讀取Excel簡單實(shí)例代碼

    Java web的讀取Excel簡單實(shí)例代碼

    下面小編就為大家?guī)硪黄狫ava web的讀取Excel簡單實(shí)例代碼。小編覺挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-06-06
  • Java實(shí)現(xiàn)把窗體隱藏到系統(tǒng)托盤方法

    Java實(shí)現(xiàn)把窗體隱藏到系統(tǒng)托盤方法

    這篇文章主要介紹了Java實(shí)現(xiàn)把窗體隱藏到系統(tǒng)托盤方法,本文直接給出核心功能代碼,需要的朋友可以參考下
    2015-05-05
  • Java 詳細(xì)講解線程安全與同步附實(shí)例與注釋

    Java 詳細(xì)講解線程安全與同步附實(shí)例與注釋

    線程安全是多線程編程時(shí)的計(jì)算機(jī)程序代碼中的一個(gè)概念。在擁有共享數(shù)據(jù)的多條線程并行執(zhí)行的程序中,線程安全的代碼會(huì)通過同步機(jī)制保證各個(gè)線程都可以正常且正確的執(zhí)行,不會(huì)出現(xiàn)數(shù)據(jù)污染等意外情況
    2022-04-04
  • 解決java攔截器獲取POST入?yún)?dǎo)致@RequestBody參數(shù)丟失問題

    解決java攔截器獲取POST入?yún)?dǎo)致@RequestBody參數(shù)丟失問題

    文章講述了在Java開發(fā)中使用攔截器獲取POST請求入?yún)r(shí),由于流關(guān)閉導(dǎo)致`@RequestBody`參數(shù)丟失的問題,并提出了一種解決方案,解決方案包括自定義方法、防止流丟失、過濾器和攔截器的合理組織和使用,最終確保了參數(shù)的正確傳遞
    2024-11-11
  • Spring?Boot實(shí)現(xiàn)WebSocket實(shí)時(shí)通信

    Spring?Boot實(shí)現(xiàn)WebSocket實(shí)時(shí)通信

    本文主要介紹了Spring?Boot實(shí)現(xiàn)WebSocket實(shí)時(shí)通信,包含實(shí)現(xiàn)實(shí)時(shí)消息傳遞和群發(fā)消息等功能,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • 完美解決MybatisPlus插件分頁查詢不起作用總是查詢?nèi)繑?shù)據(jù)問題

    完美解決MybatisPlus插件分頁查詢不起作用總是查詢?nèi)繑?shù)據(jù)問題

    這篇文章主要介紹了解決MybatisPlus插件分頁查詢不起作用總是查詢?nèi)繑?shù)據(jù)問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • springboot2如何禁用自帶tomcat的session功能

    springboot2如何禁用自帶tomcat的session功能

    這篇文章主要介紹了springboot2如何禁用自帶tomcat的session功能,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • JPA如何將查詢結(jié)果轉(zhuǎn)換為DTO對象

    JPA如何將查詢結(jié)果轉(zhuǎn)換為DTO對象

    這篇文章主要介紹了JPA如何將查詢結(jié)果轉(zhuǎn)換為DTO對象,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02

最新評論

临清市| 龙山县| 伊宁县| 临漳县| 仁怀市| 鸡东县| 临汾市| 靖州| 宜兰县| 南汇区| 玛曲县| 开江县| 南丰县| 寿阳县| 大足县| 凤台县| 疏勒县| 鱼台县| 清河县| 大关县| 石楼县| 东源县| 澄江县| 延吉市| 全州县| 武夷山市| 延庆县| 灌南县| 武平县| 两当县| 湖口县| 岳西县| 磐安县| 邻水| 嘉黎县| 阿坝| 承德市| 紫云| 油尖旺区| 抚宁县| 隆尧县|