MybatisPlus.md
    通用 CRUD
    基于 Mybatis:
    编写 EmployeeMapper 接口,并手动编写 CRUD 方法,提供 EmployeeMapper.xml 映射文件,并收订编写每个方法的 SQL 语句。
    基于 MP:
    只需要创建 EmployeeMapper 接口,并继承 BaseMapper 接口,就是使用 MP 需要完成的所有操作,甚至不需要创建 SQL 映射文件。
    BaseMapper 接口中有很多通用接口。
    主键策略:
    有四种主键策略:

    描述
    IdType.AUTO 数据库 ID 自增
    IdType.INPUT 用户输入 ID
    IdType.ID_WORKEER 全局唯一 ID,内容为空自动填充(默认配置)
    IdType.UUID 全局唯一 ID,内容为空自动填充

    在实体类上标注对应表,
    @TableId:
    value :指定表中的主键列的列名,如果实体属性与列名一直,可以省略不指定。
    type:指定主键策略
    @TableName:
    默认使用实体类的类名去找表,一般都不一样,
    value=“temployee”
    mybatisPlus 会自动驼峰和下划线匹配,比如实体为 lastName ,表的字段为 last_name,也可以匹配上。
    mybatis2.3 默认配置了全局策略配置中的驼峰为 true

    全局配置
    注意,下边的配置还是要引入到 Mybatis 的配置中






    <property name = “tablePrefix” value =” t
    “>

    查询操作:
    // 根据 ID 查询
    T selectById(Serializable id);
    // 根据 entity 条件,查询一条记录
    T selectOne(@Param(Constants.WRAPPER) Wrapper queryWrapper);

    // 查询(根据ID 批量查询)
    List selectBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
    // 根据 entity 条件,查询全部记录
    List selectList(@Param(Constants.WRAPPER) Wrapper queryWrapper);
    // 查询(根据 columnMap 条件)
    List selectByMap(@Param(Constants.COLUMN_MAP) Map columnMap);
    // 根据 Wrapper 条件,查询全部记录
    List> selectMaps(@Param(Constants.WRAPPER) Wrapper queryWrapper);
    // 根据 Wrapper 条件,查询全部记录。注意: 只返回第一个字段的值
    List selectObjs(@Param(Constants.WRAPPER) Wrapper queryWrapper);

    // 根据 entity 条件,查询全部记录(并翻页)
    IPage selectPage(IPage page, @Param(Constants.WRAPPER) Wrapper queryWrapper);
    // 根据 Wrapper 条件,查询全部记录(并翻页)
    IPage> selectMapsPage(IPage page, @Param(Constants.WRAPPER) Wrapper queryWrapper);
    // 根据 Wrapper 条件,查询总记录数
    Integer selectCount(@Param(Constants.WRAPPER) Wrapper queryWrapper);
    RowBounds:
    直接传递 MybatisPlus 里的 Page 对象,分页使用的还是 RowBounds 使用的内存分页,如果想使用物理分页,还是需要第三方的分页。
    条件构造器
    EntityWrapper,实体包装器。主要用于处理 sql 拼接,排序,实体参数查询等。注意使用的是数据库字段
    Condition:
    例:分页查询 t_employee 表中,年龄在 18-50 之间性别为男且姓名为 XX 的所有用户
    employeeMapper.selectPage(new Page(1,2),
    new EntityWrapper()
    .between(“age”,18,50)
    .eq(“gender”,1)
    .eq(“last_name”,”Tom”)
    );
    .or()方法后边跟或的插叙条件:SQL: gender = ? AND last_name like ? OR email LIKE ?
    .ornew()方法后边跟或的查询条件:SQL:(gender = ? AND last_name like ? ) OR (email LIKE ?)
    活动记录 ActiveRecord
    实体类继承 Model<>类,实现未实现的方法。
    使用实体类进行操作,方法很多和 Base 一样。