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的开发体验.

欢迎工作一到五年的Java工程师朋友们加入Java进阶高级架构:855355016

本群提供免费的学习指导 架构资料 以及免费的解答

不懂得问题都可以在本群提出来 之后还会有职业生涯规划以及面试指导

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值