Mybatis常用的注解

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

结语

这是我总结的mybatis常用的注解,这些注解相对简单。以后我每天都会写一篇博客。

Mybatis常用的注解相关推荐

  1. MyBatis-学习笔记04【04.自定义Mybatis框架基于注解开发】

    Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...

  2. mybatis java类注解式_mybatis注解详解

    http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html mybatis的原身是ibatis,现在已经脱离了apache基金会,新官网是http://ww ...

  3. MyBatis 常用标签简单总结

    MyBatis 常用标签简单总结 if 标签:类似于 Java 中的 if 语句 where标签:根据查询条件是否存在,来决定是否生成 where 字符串 set标签:根据查询条件是否存在,来决定是否 ...

  4. Mybatis常见的注解

    当下,注解非常流行,以前很长篇的代码,现在基本上一个注解就能搞定. 那,在Mybatis中又有哪些注解呢? Mybatis中的注解基本上都在org.apache.ibatis.annotations目 ...

  5. [JAVA EE] Thymeleaf 高级用法:模板布局,带参数的引用片段,表单验证,常用校验注解

    模板布局 公共部分通常定义为模板布局:如页眉,页脚,公共导航栏.菜单等. 模板布局定义方法 布局页中用 th:fragment 定义模板片段,其他页面用 th:insert 引用片段 例如:foote ...

  6. mybatis常用标签和动态查询

    这里是修真院后端小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解析后端知识/技能,本篇分享的是: [mybatis ...

  7. Springmvc的handler method参数绑定常用的注解

    转自:http://blog.longjiazuo.com/archives/1149 1. 简介: handler method参数绑定常用的注解,我们根据他们处理的Request的不同内容部分分为 ...

  8. (转)mybatis常用jdbcType数据类型

    阅读目录 1 MyBatis 通过包含的jdbcType类型 2 Mybatis中javaType和jdbcType对应和CRUD例子 3 Mybatis中javaType和jdbcType对应关系 ...

  9. spingboot和mybatis,纯注解方式

    文章目录 spingboot和mybatis整合 纯注解方式,不使用xml 1. 创建数据库 2. 建立工程,spring initizer: web + jbdc + mysql + mybatis ...

最新文章

  1. linux kernel内存回收机制
  2. C++ Time类重载运算符
  3. Linux下首次操作MySQL失败
  4. python——迭代器
  5. CSDN博客代码块代码没有高亮颜色解决办法
  6. 逆向工程核心原理读书笔记-API钩取之IE浏览器连接控制
  7. 老男孩教育50期左婷婷-day03-xhell连接服务器-远程连接排错-基础命令
  8. 干掉勒索病毒的22岁程序员自曝黑历史:中学是电脑白痴
  9. [书摘]架构真经--可扩展性规则的利益与优先级排行榜
  10. 自考计算机应用技术题,全国自考计算机应用技术试题及答案解析-20210522014558.docx-原创力文档...
  11. phpmyadmin的config-default-php文件中各个配置参数的详细说明
  12. python3-基础8
  13. 用java代码怎样做pos结算_Java Tile.Pos方法代码示例
  14. word xml 上下标
  15. Python几个编程小作业
  16. 个人简历模板,非常漂亮,docx格式,用word可自行修改
  17. 关于 mysql数据库“ERROR 1118 (42000): Row size too large.“ 的解决方法
  18. 有向图 G=(V, E) 的拓扑排序
  19. c语言非常道李忠答案,C语言非常道
  20. Android - 吸顶效果 布局篇

热门文章

  1. 吃鸡修改服务器,绝地求生自定义服务器怎么玩 自定义服务器使用说明
  2. 6 Python组合数据类型
  3. Fiddler抓包工具
  4. PICT工具的安装与使用
  5. 在PHP中调用Python并获取运行结果
  6. 海店湾养生:睡前做这4件事,让你拥有好睡眠!
  7. 震惊!!!某初中生竟30min一蓝两紫一黑!!!
  8. java-php-python-ssm校园约拍系统计算机毕业设计
  9. 2021双十二组一套电脑配置的攻略
  10. OS Command 调用 ODI Senario