栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot整合mybatis拦截器分页,java运维工程师面试题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot整合mybatis拦截器分页,java运维工程师面试题

  • @author lanys

  • @Description:

  • @date 23/7/2021 下午8:38

*/

@Configuration

@EnableTransactionManagement

@PropertySource(value = “classpath:application.yml”, ignoreResourceNotFound = true)

public class MybatisConfig implements TransactionManagementConfigurer {

@Value("${mybatis.mapper-locations}")

private String mapper;

@Value("${mybatis.type-aliases-package}")

private String aliases;

@Autowired

private DataSource dataSource;

@Bean(name = “sqlSessionFactory”)

public SqlSessionFactory sqlSessionFactory() throws Exception {

SqlSessionFactoryBean bean = new SqlSessionFactoryBean();

// 设置数据源

bean.setDataSource(dataSource);

// 设置xml

bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(mapper));

// 设置别名

bean.setTypeAliasesPackage(aliases);

// 添加分页插件

bean.setPlugins(new Interceptor[]{pageInterceptor()});

bean.getObject().getConfiguration().setMapUnderscoreToCamelCase(true);

return bean.getObject();

}

private PageInterceptor pageInterceptor() {

PageInterceptor pageInterceptor = new PageInterceptor();

// 详见 com.github.pagehelper.page.PageParams

Properties p = new Properties();

// RowBounds是否进行count查询 - 默认不查询

p.setProperty(“rowBoundsWithCount”, “true”);

// 当设置为true的时候,如果page size设置为0(或RowBounds的limit=0),就不执行分页,返回全部结果

p.setProperty(“pageSizeZero”, “true”);

// 分页合理化

p.setProperty(“reasonable”, “false”);

// 是否支持接口参数来传递分页参数,默认false

p.setProperty(“supportMethodsArguments”, “true”);

// 设置数据库方言 , 也可以不设置,会动态获取

p.setProperty(“helperDialect”, “mysql”);

pageInterceptor.setProperties§;

return pageInterceptor;

}

@Override

public PlatformTransactionManager annotationDrivenTransactionManager() {

return new DataSourceTransactionManager(dataSource);

}

}

【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】

浏览器打开:qq.cn.hn/FTf 免费领取

测试


自己的其中代码

@Override

public List focusList(Long userId, Integer page, Integer size) {

PageHelper.startPage(page, size);

List listByUserId = new ArrayList<>();

try {

//获取自己关注列表

listByUserId = this.dynamicReleaseMapper.getListFocusId(userId);

if (listByUserId == null || listByUserId.size() == 0){

return listByUserId;

}

//List listByUserId = this.dynamicReleaseMapper.getListFocusId(userId).stream().filter(x->(x.getIsPicture()!=2 && x.getIsVideo() !=2)||(x.getIsPicture()==2 && x.getIsVideo() !=2)||(x.getIsPicture()!=2 && x.getIsVideo() ==2)).collect(Collectors.toList());

publicGetDynamicInfo(userId,listByUserId);

//}

log.info("-------获取关注列表-------");

return listByUserId;

} catch (Exception e) {

log.error(“获取关注列表异常”,e);

}

return listByUserId;

}

想分页要加 PageHelper.startPage(page, size);,否则会默认不分页,也可以自己加limit.

结果(sql语句很长截取一部分):

GROUP BY id ORDER BY create_time desc LIMIT ?

总结

=================================================================

这代码是最后发现不对后,问公司大佬才懂,瞬间学到了,可能有人会问,这有什么好处吗?

优点(自己的想法):

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/390245.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号