• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

agile-mybatis: Mybatis扩展 结果POJO映射 查询返回结果可以直接声明为POJO或POJO集 ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

agile-mybatis

开源软件地址:

https://gitee.com/agile-framework/agile-mybatis

开源软件介绍:

agile-mybatis : Mybatis扩展

spring-bootmaven

它有什么作用

  • 结果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;        }    }}

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap