建设银行网站登录不了,网络营销与管理专业,阿里云可以做电影网站,wordpress插件中文系列文章目录 提示#xff1a;这里可以添加系列文章的所有文章的目录#xff0c;目录需要自己手动添加 MybatisPlus之常用插件的使用 提示#xff1a;写完文章后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、插件概…系列文章目录 提示这里可以添加系列文章的所有文章的目录目录需要自己手动添加 MybatisPlus之常用插件的使用 提示写完文章后目录可以自动生成如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、插件概述MyBatis插件机制MyBatisPlus常用插件 二、常见插件的使用分页插件防止全表更新与删除插件乐观锁插件 四、Idae常用Mybatis插件MybatisX 总结 前言
提示这里可以添加本文要记录的大概内容
在使用MybatisPlus进行数据库操作时为了提高开发效率和代码质量可以使用一些常用的插件。以下是一篇关于MybatisPlus常用插件使用的博客前言 MybatisPlus是一个支持自动映射和简化数据库操作的Mybatis增强工具提供了丰富的注解和扩展功能可以帮助开发人员轻松地进行数据库的增删改查操作。在使用MybatisPlus的过程中合理地使用插件可以进一步提高开发效率和代码质量。 在这篇博客中我们将介绍MybatisPlus中常用的插件包括分页插件、乐观锁插件等。我们将通过具体的示例代码演示如何使用这些插件来优化查询和提高数据处理的性能。同时我们也将探讨插件的原理和使用场景帮助读者更好地理解和运用这些工具。 最后我们将提供一些常见问题的解决方案和使用技巧帮助读者更好地应对实际开发中的挑战。希望这篇博客能够对MybatisPlus的使用者有所帮助让大家在数据库操作方面更加高效和便捷。 提示以下是本篇文章正文内容下面案例可供参考
一、插件概述
MyBatis插件机制
MyBatis插件机制是通过拦截器Interceptor实现的可以对执行器Executor、参数处理器ParameterHandler、结果集处理器ResultSetHandler和SQL语法构建器StatementHandler这四大核心对象进行拦截。通过利用JDK动态代理机制为这些接口的实现类创建代理对象在执行方法时先去执行代理对象的方法从而执行自己编写的拦截逻辑。
ExecutorMyBatis的内部执行器它负责调用StatementHandler操作数据库并把结果集通过 ResultSetHandler进行自动映射。StatementHandlerMyBatis直接让数据库执行sql脚本的对象。ParameterHandlerMyBatis实现Sql入参设置的对象。ResultSetHandlerMyBatis把ResultSet集合映射成POJO的接口对象。
MyBatisPlus常用插件
MybatisPlus提供了很多的插件功能目前已有的主要插件有
PaginationInnerInterceptor自动分页。OptimisticLockerInnerInterceptor乐观锁。BlockAttackInnerInterceptor防止全表更新与删除。
二、常见插件的使用
分页插件
在配置类或启动类配置分页插件
// 注册插件
Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;
}
防止全表更新与删除插件
在配置类或启动类配置防止全表更新与删除插件
// 注册插件
Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor new MybatisPlusInterceptor();// 分页插件interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));// 防止全表更新与删除插件interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());return interceptor;
}
乐观锁插件
修改数据库中的数据时为了避免同时被其他人修改最好的办法就是对该数据进行加锁以防止并发。乐观锁是一种并发处理机制它在更新数据时通过比较数据的版本号来判断是否可以更新。MybatisPlus的乐观锁插件可以帮助你在更新数据时实现乐观锁其使用步骤如下 1.配置乐观锁插件在 Spring Boot 项目中配置 MyBatis-Plus 的乐观锁插件。
// 注册插件
Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor new MybatisPlusInterceptor();// 分页插件interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));// 防止全表更新与删除插件interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());// 乐观锁插件interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());return interceptor;
}
2.在实体类中添加乐观锁字段和注解在你希望使用乐观锁的实体类中添加一个用于表示版本的字段并且加上Version注解。
Data
NoArgsConstructor
AllArgsConstructor
TableName(tb_student)
public class Student extends ModelStudent {TableId(value sid,type IdType.AUTO)private Integer id;TableField(sname)private String name;private String email;private String gender;private Integer age;Versionprivate Integer version;
}
3.修改数据库表添加一列整型version字段并设置默认值为0 4.使用乐观锁进行操作当你更新一个记录时MyBatis-Plus 会自动检查版本号是否一致并更新版本号。
// 修改
Test
public void testUpdate1() {Student student new Student();student.setId(10);student.setName(zhangsan);//如果版本号和数据库一致更新成功版本号1,如果不一致更新失败student.setVersion(10);student.updateById();
}
四、Idae常用Mybatis插件
该插件非彼插件此插件是idea的插件是使我们在使用MybatisPlus开发项目中的插件。
MybatisX
MybatisX是一款基于IDEA的快速开发插件由MyBatis-Plus团队开发维护为效率而生。它的主要功能如下
支持mapper.xml和Mapper接口之间方法的互相导航跳转。内置代码生成器通过使用GUI的形式能根据数据库来生成Domain、mapper.xml、Mapper、Service和Service实现类代码。可以自定义代码生成器模板。可以通过类似JPA的方式直接根据方法名称在mapper.xml中生成查询实现同时支持提示。
安装方法打开 IDEA进入 File - Settings - Plugins - Marketplace输入 mybatisx 搜索并安装。 总结
提示这里对文章进行总结
分页查询在配置文件中通过Bean注解定义一个MybatisPlusInterceptor对象并调用其addInnerInterceptor方法添加分页插件PaginationInnerInterceptor创建一个Page对象设置当前页和每页的记录数调用Mapper的selectPage方法传入分页对象和查询条件获取分页后的数据。防止全表更新与删除MybatisPlus提供了“SqlExplainInterceptor”拦截器可以用于防止全表更新和删除操作。开启后当数据库操作SQL中出现“UPDATE”或者“DELETE”的时候拦截器会对SQL进行解析如果存在没有带条件的“UPDATE”或者“DELETE”语句拦截器会抛出异常从而防止全表更新和删除操作。乐观锁主要适用于当要更新一条记录时希望这条记录没有被别人更新也就是实现线程安全的数据更新。实现流程是在数据库中添加version字段并在实体类中添加乐观锁注解。