MyBatisPlus之核心功能+扩展功能
1.核心功能之Lamba更新普通写法基于lamba写法1.在controller层中编写接口调用一个自己写的方法2.在IUserService接口在UserServiceImpl实现该方法3.在UserServiceImpl编写代码使用Lamba编写与lambdaQuery方法类似IService中的lambdaUpdate方法可以非常方便的实现复杂更新业务。例如需求也就是说我们在扣减用户余额时需要对用户剩余余额做出判断如果发现剩余余额为0则应该将status修改为2这就是说update语句的set部分是动态的。2.核心功能之IService批量新增批处理方案普通for循环逐条插入速度极差不推荐MP的批量新增基于预编译的批处理性能不错•配置jdbc参数开rewrit其实MybatisPlus的批处理是基于PrepareStatement的预编译模式然后批量提交最终在数据库执行时还是会有多条insert语句MySQL的客户端连接参数中有这样的一个参数rewriteBatchedStatements。顾名思义就是重写批处理的statement语句。这个参数的默认值是false我们需要修改连接参数将其配置为true。修改项目中的application.yml文件在jdbc的url后面添加参数rewriteBatchedStatementstrue:url: jdbc:mysql://127.0.0.1:3306/mp?useUnicodetruecharacterEncodingUTF-8autoReconnecttrueserverTimezoneAsia/ShanghairewriteBatchedStatementstrue3.扩展功能之代码生成推荐大家使用一款MybatisPlus的插件基于图形化界面完成MybatisPlus的代码生成非常简单。在Idea的plugins市场中搜索并安装MyBatisPlus插件然后重启Idea即可使用。使用首先需要配置数据库地址在Idea顶部菜单中找到other选择Config Database在弹出的窗口中填写数据库连接的基本信息点击OK然后再次点击Idea顶部菜单中的other然后选择Code Generator:点击OK最终代码自动生成到指定的位置了4.扩展功能之静态工具查询有的时候Service之间也会相互调用为了避免出现循环依赖问题MybatisPlus提供一个静态工具类Db其中的一些静态方法与IService中方法签名基本一致也可以帮助我们实现CRUD功能。1.实现以上功能需要在UserService中注入AddressService在AddressService中注入UserService是一种循环依赖即可以用静态工具查询2.需要在UserVo中加入address属性3.第一个功能UserController层中调用自己的方法然后进入IUserService接口进入接口实现类实现方法4.第2个功能UserController层中调用自己的方法然后进入IUserService接口进入接口实现类实现方法5.扩展功能之逻辑删除逻辑删除就是基于代码逻辑模拟删除效果但并不会真正删除数据。思路如下在表中添加一个字段标记数据是否被删除当删除数据时把标记置为1查询时只查询标记为0的数据MybatisPlus提供了逻辑删除功能无需改变方法调用的方式而是在底层帮我们自动修改CRUD的语句。我们要做的就是在application.yaml文件中配置逻辑删除的字段名称和值即可只用配置logic-delete-field字段6.扩展功能之枚举处理器6.1定义枚举类型加注解6.2配置在application.yml中配置全局枚举处理器6.3改User和UserService以及UserVO7.扩展功能之Json处理器处理JSON就可以使用JacksonTypeHandler处理器7.1定义一个实体在po中7.2将User类的info字段修改为UserInfo类型并声明类型处理器7.3在User类上添加一个注解声明自动映射
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2522015.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!