结果POJO映射 查询返回结果可以直接声明为POJO或POJO集合,其映射过程是依赖于cloud.agileframework:common-util对象深度转换器实现,所以支持 识别驼峰与下划线等风格属性的互转。只需声明,无需额外调用,以最低的代码入侵实现类似ORM映射效果。
分页拦截器 分页方式是通过扩展Mybatis拦截器,当入参中包含接口MybatisPage类(及其实现类)且返回参数为Page形式时触发分页拦截器,解析总条数 total及页内容content。只需声明,无需额外调用,以最低的代码入侵实现Mybatis分页。
低代码入侵 不改变任何Mybatis原生编码方式及能力
开始你的第一个项目是非常容易的。
您可以从[最新稳定版本]下载包(https://github.com/mydeathtrial/agile-mybatis/releases). 该包已上传至maven中央仓库,可在pom中直接声明引用
以版本agile-mybatis-2.1.0.M5.jar为例。
<!--声明中央仓库-->
<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>
@Mapper
注解,且声明为spring bean,这里使用@Component
声明@Component
@Mapper
public 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);
}
@Service
public 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 )