一、通用SQL

1.简介:(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
2.定义Javabean中成员变量所使用的的类型:建议使用包装类型。因为每个基本类型都有一个默认值,如:int =>0 ,boolean=> flase.所以mybatis很难去判断当前是否为空。p.s. 包装类型默认值统一为 null
3.引入 MyBatis-Plus 之后请不要再次引入 MyBatis 以及 MyBatis-Spring,以避免因版本差异导致的问题。
4.关于mapper接口:

  • 基于mybatis :在mapper接口中编写CRUD方法,提供mapper接口所对应的sql语句
  • 基于mp:只需要让mapper接口继承BaseMapper 。BaseMapper :泛型T指定当前接口所操作的实体类型。
public interface EmployeeMapper  extends BaseMapper<Employee> {

}

5.BaseMapper:继承该接口后,无需编写 mapper.xml 文件,即可获得CRUD功能。该接口帮我们定义好了常用的CRUD方法。
6.注解: 参考文档

  • @TableId :主键注解。属性:value主键字段名;type 主键类型,指定主键策略
    @TableId(value = "id",type = IdType.AUTO) //type枚举类型
    private Integer id ;  //包装类型
  • @TableName:表名注解,指定表名。属性:value 指定表名。
/**
 * mybatis默认拿实体的类名去数据库中找对应的表
 */
@TableName(value = "tbl_employee")
public class Employee {
  • @TableField:字段注解(非主键),用来指定数据库中的字段。属性:exist 是否为数据库表字段。
    @TableField(value = "last_name")
    private String lastName;

7.mybatisplus的全局策略配置:

   <!--定义mybatisplus的全局策略配置-->
    <bean id="globalConfiguration" class="com.baomidou.mybatisplus.entity.GlobalConfiguration">
        <!--在2.3版本以后默认开启 ,下划线转驼峰标识-->
        <property name="dbColumnUnderline" value="true"></property>
        <!--全局的主键策略-->
        <property name="idType" value="0"></property>
        <!--表前缀配置-->
        <property name="tablePrefix" value="tbl_"></property>
    </bean>

    <!-- 别忘了将全局配置添加到 SqlSessionFactoryBean -->
    <bean id="sqlSessionFactoryBean"
          class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean">
        <!-- mybatisplus全局配置 -->
        <property name="globalConfig" ref="globalConfiguration"></property>
    </bean>

8.insert操作:

  • insert方法在插入时,会根据实体类的每个属性进行非空判断,只有非空的属性对应的字段才会出现到SQL语句中。
  • insertAllColumn方法在插入时,不管属性是否非空,属性所对应的字段都会出现到SQL语句中。
        Employee employee = new Employee(null,"夏洛","12450237886@qq.com",1,20);
        //操作成功的条数
        Integer result = employeeMapper.insert(employee);
        System.out.println("result:"+result);
        //mybatisplus会自动将插入的id放到employee对象中
        System.out.println("index:"+employee.getId());

9.update更新:

  • updateById(@Param("et") T entity);非空时则更新该字段。
  • updateAllColumnById(@Param("et") T entity);更新所有字段。

10.Select查询:

  • T selectById(Serializable id); 根据主键id查询;
  • T selectOne(@Param("ew") T entity);通过多个列查询;
  • List selectBatchIds(@Param("coll") Collection<? extends Serializable> idList);根据id列表查询
  • List selectByMap(@Param("cm") Map<String, Object> columnMap);根据map中封装的条件查询
  • List selectPage(RowBounds rowBounds, @Param("ew") Wrapper wrapper);分页查询;

11.Delete删除:

  • Integer deleteById(Serializable id);根据 ID 删除
  • Integer deleteByMap(@Param("cm") Map<String, Object> columnMap);根据 columnMap 条件,删除记录
  • Integer deleteBatchIds(@Param("coll") Collection<? extends Serializable> idList);根据ID 批量删除

二、MP启动注入SQL原理分析

MyBatis-Plus的更多相关文章

  1. 【分享】标准springMVC+mybatis项目maven搭建最精简教程

    文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...

  2. Java MyBatis 插入数据库返回主键

    最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User ...

  3. [原创]mybatis中整合ehcache缓存框架的使用

    mybatis整合ehcache缓存框架的使用 mybaits的二级缓存是mapper范围级别,除了在SqlMapConfig.xml设置二级缓存的总开关,还要在具体的mapper.xml中开启二级缓 ...

  4. 【SSM框架】Spring + Springmvc + Mybatis 基本框架搭建集成教程

    本文将讲解SSM框架的基本搭建集成,并有一个简单demo案例 说明:1.本文暂未使用maven集成,jar包需要手动导入. 2.本文为基础教程,大神切勿见笑. 3.如果对您学习有帮助,欢迎各种转载,注 ...

  5. mybatis plugins实现项目【全局】读写分离

    在之前的文章中讲述过数据库主从同步和通过注解来为部分方法切换数据源实现读写分离 注解实现读写分离: http://www.cnblogs.com/xiaochangwei/p/4961807.html ...

  6. MyBatis基础入门--知识点总结

    对原生态jdbc程序的问题总结 下面是一个传统的jdbc连接oracle数据库的标准代码: public static void main(String[] args) throws Exceptio ...

  7. Mybatis XML配置

    Mybatis常用带有禁用缓存的XML配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...

  8. MyBatis源码分析(一)开篇

    源码学习的好处不用多说,Mybatis源码量少.逻辑简单,将写个系列文章来学习. SqlSession Mybatis的使用入口位于org.apache.ibatis.session包中的SqlSes ...

  9. (整理)MyBatis入门教程(一)

    本文转载: http://www.cnblogs.com/hellokitty1/p/5216025.html#3591383 本人文笔不行,根据上面博客内容引导,自己整理了一些东西 首先给大家推荐几 ...

  10. MyBatis6:MyBatis集成Spring事物管理(下篇)

    前言 前一篇文章<MyBatis5:MyBatis集成Spring事物管理(上篇)>复习了MyBatis的基本使用以及使用Spring管理MyBatis的事物的做法,本文的目的是在这个的基 ...

随机推荐

  1. Egg.js 中入参的校验

    日常作业中免不了频繁处理 GET/POST 的入参,你当然可以每个 action 中都重复地去做这些事情, 从 query 或 body 取出入参, 对可选的入参进行判空, 处理入参的类型转换, 对入 ...

  2. DotNetCore跨平台~关于appsettings.json里各种配置项的读取

    回到目录 对于dotnet Core来说,依赖注入的集成无疑是最大的亮点,它主要用在服务注册与注入和配置文件注册与注入上面,我们一般会在程序入口先注册服务或者文件,然后在需要的地方使用注入即可,下面主 ...

  3. Docker进阶之四:centos7安装docker

    centos7.6 安装docker 参考:https://docs.docker.com/install/linux/docker-ce/centos/ 一.存在老版本先删除 yum remove ...

  4. Spring Boot连接MySQL数据库

    上篇 只需两步!Eclipse+Maven快速构建第一个Spring Boot项目 已经构建了一个Spring Boot项目,本文在此基础上进行连接MySQL数据库的操作. 1. pom.xml添加依 ...

  5. 【转载】SQL语句将一个表的数据写入到另一个表中

    在日常的数据库运维过程中,有时候需要将Select查询出来的数据集写入到另一个数据表中,其中一种方式是通过存储过程循环写入数据,另一种简便的方式是直接使用Insert Into语句后面跟上Select ...

  6. MongoDB学习(使用分组、聚合和映射-归并)

    使用分组.聚合和映射-归并 MongoDB的强大功能之一,是直接在服务器对文档的值进行复杂的操作,而不用先发文档发送到客户端在进行处理. 结果分组 对大型数据集进行查询操作时,通常会根据文档的字段值对 ...

  7. Webpack4教程 - 第三部分,如何使用插件

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者.原文出处:https://wanago.io/2018/07/23/webpack-4-course-part ...

  8. 数据结构java(一)数组链表

    链表是数据结构中最基础的内容,链表在存储结构上分成两种:数组形式储存,链式存储. 相比c语言需要的结构体,在java中由于有了面向对象编程,将指针‘藏’了起来,不需要分配内存. 所以只需要创建一个对象 ...

  9. Scrum笔记

    Scrum的笔记,需要的童鞋拿去,有错漏处请指正,谢谢. 出处:https://www.cnblogs.com/Ryu666/p/9890609.html

  10. 轻松学习UML之类图,状态图

    本文主要讲解UML图中的类图与状态图相关内容,如有不足之处,还请指正. 概述 统一建模语言(UML,UnifiedModelingLanguage)是面向对象软件的标准化建模语言,UML因其简单.统一 ...