开源软件名称:agile-mybatis
开源软件地址:https://gitee.com/agile-framework/agile-mybatis
开源软件介绍:
agile-mybatis : Mybatis扩展
它有什么作用结果POJO映射查询返回结果可以直接声明为POJO或POJO集合,其映射过程是依赖于cloud.agileframework:common-util对象深度转换器实现,所以支持识别驼峰与下划线等风格属性的互转。只需声明,无需额外调用,以最低的代码入侵实现类似ORM映射效果。 分页拦截器分页方式是通过扩展Mybatis拦截器,当入参中包含接口MybatisPage类(及其实现类)且返回参数为Page形式时触发分页拦截器,解析总条数total及页内容content。只需声明,无需额外调用,以最低的代码入侵实现Mybatis分页。 低代码入侵不改变任何Mybatis原生编码方式及能力
快速入门开始你的第一个项目是非常容易的。 步骤 1: 下载包您可以从[最新稳定版本]下载包(https://github.com/mydeathtrial/agile-mybatis/releases). 该包已上传至maven中央仓库,可在pom中直接声明引用 以版本agile-mybatis-2.1.0.M5.jar为例。 步骤 2: 添加maven依赖<!--声明中央仓库--><repositories> <repository> <id>cent</id> <url>https://repo1.maven.org/maven2/</url> </repository></repositories> <!--声明依赖--><dependency><groupId>cloud.agileframework</groupId><artifactId>agile-mybatis</artifactId><version>2.1.0.M5</version></dependency> 步骤 3: 开箱即用接口定义,支持Mybatis原生方式,要注意接口上需要使用@Mapper 注解,且声明为spring bean,这里使用@Component 声明@Component@Mapperpublic interface MyRepository { //结果直接映射为POJO集合 @Select("<script> select * from sys_api </script>") List<SysApiEntity> queryAll(); //分页 @Select("<script> select * from sys_api </script>") Page<SysApiEntity> page(MybatisPage pageInfo); //自定义分页实现,并扩展参数 @Select("<script> select * from sys_api where sys_api_id = #{param}</script>") Page<SysApiEntity> page2(TestService.CustomPage pageInfo); //结果映射为单一POJO对象 @Select("<script> select * from sys_api where sys_api_id = #{param}</script>") SysApiEntity findOne(@Param("param") String id);} API调用,调用过程与调用普通spring bean形式相同,写操作需添加事务注解,此处不做过多描述,可参照spring与mybatis官方文档@Servicepublic class TestService { private final Logger logger = LoggerFactory.getLogger(TestService.class); @Autowired private MyRepository repository; /** * 查询分页 */ @Test public void testPage() { List<SysApiEntity> list = repository.page(new MybatisPage() { @Override public int getPageNum() { return 1; } @Override public int getPageSize() { return 2; } }); logger.info(JSON.toJSONString(list, true)); } /** * 查询自定义分页 */ @Test public void testPage2() { CustomPage customPage = new CustomPage("428477999713751040", 1, 2); List<SysApiEntity> list = repository.page2(customPage); logger.info(JSON.toJSONString(list, true)); } /** * 查询单个结果映射 */ @Test public void findOne() { SysApiEntity entity = repository.findOne("428477999713751040"); logger.info(JSON.toJSONString(entity, true)); } /** * 自定义分页,并扩展参数,实现MybatisPage接口 */ public static class CustomPage implements MybatisPage { private final String param; private final int page; private final int size; public CustomPage(String param, int page, int size) { this.param = param; this.page = page; this.size = size; } public String getParam() { return param; } @Override public int getPageNum() { return page; } @Override public int getPageSize() { return size; } }} |
请发表评论