zoukankan      html  css  js  c++  java
  • 开发六年mybatisplus使用小结

    最近在项目里用到了一个第三方库,叫mybatisplus,是一个mybatis的增强库,简单来说就是增强了mybatis的功能,让mybatis更好用,mybatisplus给的官方定义是Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。http://mp.baomidou.com/#/这是mybatisplus的网站,有兴趣的可以自己看一下.

    使用前需要增加maven的以来配置下面就简单说下他具体有哪些好用的功能

    com.baomidou
    mybatis-plus
    2.1.9
    com.baomidou
    mybatisplus-spring-boot-starter
    1.0.5

    下面就简单说下他具体有哪些好用的功能.

    1.BaseMapper集成单表crud功能

    假如有一个实体类User,要使用mybatis实现增删改查需要写很多的xml配置文件来实现,但是用mybatisplus之后直接继承BaseMapper接口即可实现,无需编写任何的xml文件,代码如下

    publicinterfaceUserMapperextendsBaseMapper{ }//继承之后即可直接使用BaseMapper中的增删改查方法,例如userMapper.selectById(id); userMapper.deleteById(id); userMapper.updateById(user); userMapper.insert(user);

    2.集成分页功能

    mybatisplus集成了很好用的分页功能,在执行sql查询的时候,传入一个pagination的对象即可实现自动分页.Pagination对象中主要的成员变量如下:

    /**
    * 总数
    */privateinttotal;/**
    * 每页显示条数,默认 10
    */privateintsize=10;/**
    * 总页数
    */privateintpages;/**
    * 当前页
    */privateintcurrent =1;/**
    * 查询总记录数(默认 true)
    */privatebooleansearchCount =true;/**
    * 开启排序(默认 true) 只在代码逻辑判断 并不截取sql分析
    *
    * @see com.baomidou.mybatisplus.mapper.SqlHelper#fillWrapper
    **/privatebooleanopenSort =true;/**
    * 优化 Count Sql 设置 false 执行 select count(1) from (listSql)
    */privatebooleanoptimizeCountSql =true;/**
    *
    * SQL 排序 ASC 集合
    *
    */privateList ascs;/**
    *
    * SQL 排序 DESC 集合
    *
    */privateList descs;/**
    * 是否为升序 ASC( 默认: true )
    *
    * @see #ascs
    * @see #descs
    */privatebooleanisAsc =true;/**
    *
    * SQL 排序 ORDER BY 字段,例如: id DESC(根据id倒序查询)
    *
    *
    * DESC 表示按倒序排序(即:从大到小排序)
    * ASC 表示按正序排序(即:从小到大排序)
    *
    * @see #ascs
    * @see #descs
    *
    */privateString orderByField;

    对这些成员变量例如isAsc赋值,即可实现想要的分页功能.

    另外pagination是RowBounds的子类,如果你想要一个自定义的分页方式,可以继承RowBounds类并重写对应的方法即可实现,这里就不详细说明了.

    3.条件构造器实现复杂的sql查询

    这个功能主要用户实现动态的sql拼接,主要用到的对象是EntityWrapper,通过生成一个EntityWrapper对象,然后通过该wrapper对象的方法实现sql的拼接.例如可以wrapper的eq方法实现sql中的=功能,like方法实现sql中的like功能,gt方法实现sql的>

    功能等等等等,这块大家可以自己看下wrapper中的方法就可以了,非常简单,拿来即可用.

    4.代码自动生成

    mybatis generator不知道大家有没有用过,就是更加表结构自动生成实体类和mapper及xml配置文件,mybatisplus在这个基础上提供了更强大的代码自动生成功能,示例代码如下

    privatevoidgenerateByTables(StringpackageName,String... tableNames) { GlobalConfig globalConfig =newGlobalConfig(); globalConfig.setActiveRecord(false)
    .setEnableCache(false)
    .setBaseColumnList(true)
    .setBaseResultMap(true)
    .setAuthor("administrator")
    .setOutputDir(baseProjectPath)
    .setFileOverride(true)
    .setServiceName("%sService")
    .setControllerName("Con")
    .setActiveRecord(false)
    .setFileOverride(true);
    DataSourceConfig dataSourceConfig =newDataSourceConfig(); dataSourceConfig.setDbType(DbType.MYSQL).setUrl(URL) .setUsername(USERNAME)
    .setPassword(PASSWORD)
    .setDriverName(DRIVER_NAME);
    StrategyConfig strategyConfig =newStrategyConfig(); strategyConfig.setEntityBuilderModel(false)
    .setCapitalMode(false)
    .setEntityLombokModel(true)
    .setDbColumnUnderline(true) .setNaming(NamingStrategy.underline_to_camel) .setInclude(tableNames);//修改替换成你需要的表名,多个表名传数组
    PackageConfig packageConfig =newPackageConfig() .setParent(packageName)
    .setEntity("model.mybatis")
    .setMapper("dao")
    .setXml("../../../../../mapper");
    TemplateConfig templateConfig =newTemplateConfig();
    templateConfig
    .setController(null)
    .setService(null)
    .setServiceImpl(null);newAutoGenerator()
    .setGlobalConfig(globalConfig)
    .setDataSource(dataSourceConfig)
    .setStrategy(strategyConfig)
    .setPackageInfo(packageConfig)
    .setTemplate(templateConfig)
    .execute(); }

    其中packagename为你需要生成代码的包地址,tables是表名

    以上就是mybatisplus常用的功能,最后给大家推荐一个好用的mybaitsplus在idea里的插件, 可以通过idea的File -> Settings -> Plugins -> Browse Repositories..输入 mybatisx 安装下载,能够 很好的提升mybatisplus的开发体验.

    写在最后:欢迎留言讨论,加关注,持续更新!!!

  • 相关阅读:
    02.v-on的事件修饰符
    01.Vue的系统指令
    00-Vue的介绍和vue-cli
    vs code快捷键
    分库分表之后,主键的处理方法
    动态扩容分库分表
    前端web通过flask操作数据库-增删改查
    mysql组复制集群简介
    vsftp进阶-锁定目录
    kvm克隆
  • 原文地址:https://www.cnblogs.com/Ti1077/p/9626851.html
Copyright © 2011-2022 走看看