全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

java  中MyBatis注解映射的实例详解

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.结果集映射

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

  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.动态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); 
 

 如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# java  # 中MyBatis注解映射  # MyBatis注解映射的详解  # MyBatis  # 映射  # Mybatis如何使用@Mapper和@MapperScan注解实现映射关系  # mybatis中注解映射SQL示例代码  # MyBatis注解式开发映射语句详解  # 如有  # 希望能  # 谢谢大家  # 疑问请  # delete 


相关文章: Android滚轮选择时间控件使用详解  宿州网站制作公司兴策,安徽省低保查询网站?  宝塔建站教程:一键部署配置流程与SEO优化实战指南  如何获取开源自助建站系统免费下载链接?  如何解决VPS建站LNMP环境配置常见问题?  图册素材网站设计制作软件,图册的导出方式有几种?  如何在阿里云高效完成企业建站全流程?  如何快速上传建站程序避免常见错误?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  如何破解联通资金短缺导致的基站建设难题?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  家具网站制作软件,家具厂怎么跑业务?  打鱼网站制作软件,波克捕鱼官方号怎么注册?  动图在线制作网站有哪些,滑动动图图集怎么做?  山东网站制作公司有哪些,山东大源集团官网?  制作旅游网站html,怎样注册旅游网站?  建站主机空间推荐 高性价比配置与快速部署方案解析  网站设计制作公司地址,网站建设比较好的公司都有哪些?  网站制作的步骤包括,正确网址格式怎么写?  建站之星3.0如何解决常见操作问题?  C++如何将C风格字符串(char*)转换为std::string?(代码示例)  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  大型企业网站制作流程,做网站需要注册公司吗?  如何通过万网虚拟主机快速搭建网站?  建站之星上传入口如何快速找到?  移民网站制作流程,怎么看加拿大移民官网?  建站之星好吗?新手能否轻松上手建站?  北京的网站制作公司有哪些,哪个视频网站最好?  开源网站制作软件,开源网站什么意思?  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  建站之星2.7模板快速切换与批量管理功能操作指南  ,怎么在广州志愿者网站注册?  如何挑选优质建站一级代理提升网站排名?  建站之星展会模版如何一键下载生成?  如何在自有机房高效搭建专业网站?  建站之星×万网:智能建站系统+自助建站平台一键生成  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  深圳网站制作的公司有哪些,dido官方网站?  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  网站制作知乎推荐,想做自己的网站用什么工具比较好?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  建站之星在线版空间:自助建站+智能模板一键生成方案  建站之星后台密码遗忘?如何快速找回?  用v-html解决Vue.js渲染中html标签不被解析的问题  建站之星如何快速解决建站难题?  独立制作一个网站多少钱,建立网站需要花多少钱? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。