一,mapper框架介绍
当我们在项目中使用Mybatis的开发者大多会因为繁多的XML映射配置而头痛不已,即使使用注解,大量的SQL语句也是不可避免的,当数据库表结构发生变动时,所有对应的sql和实体类都得修改,基于这个,于是通用Mapper出现了.
通用Mapper是一款用于单表增删改查的Mybatis插件,开发人员可以省去编写sql语句和在DAO层编写任何方法,毫不客气的说,使用这个通用Mapper甚至能改变你对Mybatis单表基础操作不方便的想法,使用它你能简单的使用单表的增删改查,包含动态的增删改查.程序使用拦截器实现具体的执行Sql,完全使用原生的Mybatis进行操作.
二,mapper原理简介
通用Mapper通过让dao层接口继承Mapper<T.class> 接口,在运行期通过反射获取实体类T的信息,并构造出对应的SQL,dao层接口只需要直接调用父接口提供的方法,便可完成对应SQL的调用和数据库查询
三,通用Mapper的使用及优势
优点:
• 使用通用Mapper可以让你方便的直接使用单表的增删改查方法
• 你不需要使用MyBatis生成器来生成一大堆的XML内容和接口方法。
• 你只需要继承通用Mapper的接口即可获得大量直接可用的方法。
• 表有变化的时候,只需要修改实体类,不需要重新生成接口和XML。
快速入门使用通用Mapper步骤:
1.引入通用Mapper依赖或者Jar包

2.修改(或生成)实体类
• @Id 主键字段必须加这个注解,联合主键的时候,可以给多个字段加@Id注
解。和PrimaryKey有关的方法都需要该注解标记的字段,所以实体中至少要
有一个标记@Id的字段。
• @Table,@Column注解,默认情况下驼峰命名和数据库的下划线命名互相转
换,sysUser对应表中的sys_user,当实体类名和字段名不是按照这种默认规
则转换时,使用这俩注解指定,例如@Table(name=“sysuser”),列类似。
• @Transient注解,当实体中的字段不是表中的字段时,需要加这个注解,这
样在和表转换时,会忽略该字段。
• @GeneratedValue(generator=“JDBC”)注解,这里只介绍这一种,其他的参
考Mapper文档,这个配置可以自动回写自增字段的值,相当于XML配置中的
userGeneratedKeys=“true” keyProperty=“id”
• @OrderBy注解可以指定表默认的排序规则
• @NameStyle注解用来配置对象名/字段名和数据库表名/字段之间的转换方式

3.配置通用Mapper(springboot)

4创建实体对应的具体的Dao,可以编写自定义查询方法,然后在xml配置具体的sql


5,在Service中使用

常用的CRUD方法mapper都有为我们提供,也可以自定义封装查询:

查询
select(T t) :根据传入对象属性查询,返回实体类元素集合。
selectOne(T t)) :根据传入的对象属性查询,存在多个返回值时抛出异常。
selectAll() :返回实体类元素集合。
selectCount(T t)) :根据传入的对象属性查询,返回总记录数。
删除
delete(T t)) 根据传入对象属性,删除所有查找到的记录。
deleteByPrimaryKey(Object key) 根据传入的主键,删除对应记录。
更新
updateByPrimaryKey(Object o) 根据传入对象属性,更新所有字段 。
updateByPrimaryKeySelective(T t) 只更新对象属性非空字段 。
插入
insert(T t)) 根据传入对象属性,插入所有属性对应的字段。
insertSelective(T t)) 根据传入对象属性,只插入对象属性非空字段

复杂条件查询,通用Mapper复杂条件查询使用的是Example

原文参考链接
mapper作者链接

通用mapper快速入门及原理简介相关推荐

  1. 超简单的通用Mapper快速入门

    文章目录 1.前言 2.什么是通用mapper 3.使用流程示例 3.1 导入依赖 3.2 编写实体类 3.3 创建Mapper 3.4 配置通用Mapper 3.5 测试 4.常用注解 4.1 @T ...

  2. Windows通用克隆系统入门基础知识简介

    Windows通用克隆系统入门基础知识简介 这里的Windows是指微软的Windows 2000/XP/2003(后文中未经说明的,凡是Windows均指这三种系统):所谓的通用克隆,俗名万能克隆, ...

  3. (转载)JDO快速入门(原理详解)

    JDO快速入门 Java数据对象(Java Data Objects,JDO)是一个应用程序接口(API),它是Java程序员能够间接地访问数据库,也就是说,不需使用直接的结构化查询语言(SQL)语句 ...

  4. PP模块快速入门之功能简介

    R/3 PP MRPII模型 该系统具备的主要功能:   * 制定销售计划   * 编制主生产计划   * 生成物料需求计划   * 市场预测   * 生产资源计划   * 能力计划   * 生产活动 ...

  5. [雪峰磁针石博客]数据仓库快速入门教程1简介

    数据仓库是从各种渠道收集和管理数据的技术,可提供有意义的业务洞察,战略性地使用数据. 它用于查询和分析而不是事务处理,是将数据转换为信息并及时向用户提供的过程. 决策支持数据库(数据仓库)与组织的运营 ...

  6. 通用mapper_通用Mapper快速开发,搭建项目

    搭建环境 配置maven依赖的架包 tk.mybatismapper4.0.0-beta3junitjunit4.9log4jlog4j1.2.17cglibcglib2.2org.aspectjas ...

  7. Mycat快速入门(一): Mycat简介

    分享一个朋友的人工智能教程.比较通俗易懂,风趣幽默,感兴趣的朋友可以去看看. 一:Mycat简介 Mycat是数据库分库分表的中间件,Mycat使用最多的两个功能是:读写分离和分库分表功能,支持全局表 ...

  8. PP模块快速入门之功能简介(二)

    根据以下任何一个随机模型进行预测:平均移动 ,指数平滑常数模型 ,指数平滑趋势模型 ,指数平滑季节性模型 ,组合趋势/指数平滑季节性模型 R/3可以用最适用分析来自动地选择随机模型,你也可以人工选择模 ...

  9. 服务器管理器正在收集清单数据_数据仓库快速入门教程1简介

    数据仓库是从各种渠道收集和管理数据的技术,可提供有意义的业务洞察,战略性地使用数据. 它用于查询和分析而不是事务处理,是将数据转换为信息并及时向用户提供的过程. 决策支持数据库(数据仓库)与组织的运营 ...

最新文章

  1. 2021年大数据Spark(二十五):SparkSQL的RDD、DF、DS相关操作
  2. python windows epoll_Windows 10生产力提升之WSL实践
  3. 给你一个网站你是如何来渗透测试的
  4. Android数据库--Sqlcipher的使用(一)
  5. Jmail的使用,可以发送给多人
  6. PWN-PRACTICE-CTFSHOW-3
  7. matlab循环输出图像,运用matlab实现循环语句中的多幅图像显示
  8. Android使用相机demo
  9. 在ubuntu上安装qq
  10. 详解MATLAB在最优化计算中的应用(pdf版)
  11. 企业微信客户端API分享微信朋友圈使用过程及总结
  12. iphone计算机照片要求,如何将照片从iPhone传输到计算机
  13. Java+Maven实现Mail自动发送邮件功能
  14. CRM-如何获取客户
  15. 问题 K: 到底有多少个小和尚?
  16. 可折叠的listview 之ExpandableListView基本使用
  17. 利用有放回抽样估计自然常数e python
  18. Cocos Creator微信小游戏添加视频广告
  19. 查看mysql数据库的定时任务_mysql数据库的定时任务
  20. java学习第12天

热门文章

  1. Innodb页合并和页分裂
  2. 泛微OA E9 weaver.conn.util.ProcChecker java.lang.ClassNotFoundException: com.weaver.procedure. 报错
  3. intouch制作历史趋势公用弹窗
  4. 第3单元 mvp架构,dagger2,butterknife的使用
  5. 《精解 Windows 10》——2.6 Cortana
  6. 你画我猜项目实战【更新中】
  7. 【C语言】用函数实现求两个自然数的最大公约数
  8. 雅思屠鸭方法与技巧<写作部分>:顾家北的ABC大法
  9. 接收第三方回调,请求方式小技巧
  10. ELK-EFK-v7.12.0日志平台部署