提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
MyBatis Generator
Example类使用
MyBatis Generator 生成的 Example 类是为了支持动态 SQL 查询而设计的。这个类提供了一种在运行时构建 SQL 查询条件的方式,使得可以根据不同的条件生成不同的查询语句。
UserExample example = new UserExample();
UserExample.Criteria criteria = example.createCriteria();
// 添加查询条件
criteria.andUsernameEqualTo("john");
criteria.andAgeGreaterThan(25);
// 构建查询语句
List<User> userList = userDao.selectByExample(example);
PageHelper
基本使用
PageHelper.startPage(page, pageSize, false);
List<LedgerPo> poList = ledgerPoMapper.selectByExample(example);
return poList.stream().map(po -> getBo(po)).collect(Collectors.toList());
实现原理
PageHelper实现了MyBatis的Interceptor接口,这是MyBatis插件的基础。Interceptor接口定义了在MyBatis执行过程中可以拦截的方法,包括了在执行SQL语句前后的拦截点。
Interceptor——责任链模式+动态代理
Mybatis中可以被拦截的类型具体有以下四种:
1.Executor:拦截执行器的方法。
2.ParameterHandler:拦截参数的处理。
3.ResultHandler:拦截结果集的处理。
4.StatementHandler:拦截Sql语法构建的处理。
自定义Interceptor
1.实现自定义Interceptor:
2.在MyBatis的XML配置文件中配置使用你的Interceptor。在标签内添加如下配置:
<plugins>
<plugin interceptor="com.example.CustomInterceptor">
<!-- You can add properties here if your interceptor requires them -->
</plugin>
</plugins>
3.在Java代码中使用MyBatis时,自定义Interceptor会自动被应用于配置的拦截点。