分页插件PageHelper+springboot复习+day0808

day0808

  • 知识回顾

  • mybatis集成分页

  • 分页怎么实现呢?mysql分页原理:一种实在mysql中实现,一种实在java中实现,物理分页和逻辑分页,
    mysql方言的 分页sql 通过Limit
    select id,username limit 0,2
    从第0条开始,取两条
    开始记录数 每页查询数据条数

  • 开始记录数 = (pageNo-1)* pageSize
    startRow

原生的分页实现
  • dao层声明一个方法, List
    pagelist(User user);
  • pojo中User继承了父类Page
  • mapper文件的声明
  • 单元测试
PageHelper插件实现(集成实现)
  • 在ssm框架上集成PageHelper,配置拦截器

  • 1、添加依赖

  • 2、plugins 插件
    分页拦截器
    com.github.Pagehelper.PageInterceptor

  • 拦截器的方言,还有数据的合理性

  • helperDialect resonable

  • Cacher Ratio 命中率 缓存

  • 如果mapper中缓存存在,第一次从数据库中查询,第二次从缓存中查询

  • PageHelper中的方法。。

  • startPage(pageNo,pageSize)

  • offsetPage((pageNo-1)*pageSize,pageSize);//offsetPage偏移量

oracle 怎么实现了分页?

  • rownum

springboot

  • 约定大于配置*************
搭建springboot
  • 创建完maven项目,第一部打包成jar
    添加parent
  • 添加依赖
  • spring-boot-starter-web

snapshot 快照
是个版本,加上的会有点影响,项目会很多,项目和项目,模块和模块会有依赖关系,

  • 启动类 @SpringbootApplication

  • application.properties

  • server.servlet.context-path = /app
    配置上下文

  • server.port = 80

额外的配置
1、日期格式化
  • 1、1 springboot内置的
    spring:
    jackson:
    date-Format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8

  • 1、2 fastjson

  • 导包,在IOC容器中声明消息转换器

  • @Configuration
    就是方法的返回值作为一个bean对象,放进入IOC容器

  • 在IOC容器中声明了消息转换器,就是替换了默认的消息转换器

  • HttpMessageConverters messageConverters(){
    FastJsonHttpMessageConverter fa
    }

2、 异常处理
  • 不需要处理的异常,只想修改界面展示

  • public/template/error/static等目录下对应的errorpage, 404.html/500.html

  • 2、2 处理异常的情况,

    • 写一个 @Exceptionhandler(value=Arith…class)
    • String handlerException(Exception e){

    }

    • @ExceptionHandler
      String handlerException(Exception e)
      {
      return e.getMessage();
      }
  • http:localhost/user/list 404 tomcat的404

  • http:localhost/app/sdlf 404 springboot的404

  • 两个404是不一样的,springboot的404,

全局异常处理器
  • 单个的不好使,定义全局的异常处理器

  • 返回的是视图,没有的话报404

3、跨域
  • 跨域产生的根源:跨域的问题原因在浏览器端,
    跨站脚本攻击
    origin:baidu.cml
    cors:sina.com
    浏览器提出了同源策略,
    浏览器限制访问了同源路径************

请求依旧被发出,服务器能够检测到;

浏览器正常请求了,但是没有一个头信息,header,那么就不行,如果带着信息就可以正常跨域了。

4、mybatis
  • 1、添加依赖

  • 2、mybatis-spring-boot-starter

  • mysql

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一个能够极大简化Spring应用开发的框架,而PageHelper是MyBatis的分页插件,而MyBatis Plus则是MyBatis的增强工具包。SpringBoot整合PageHelper和MyBatis Plus可以简化分页操作,示例代码如下: 1.首先,在pom.xml文件中添加PageHelper和MyBatis Plus的依赖: ```xml <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>最新版本号</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>最新版本号</version> </dependency> ``` 2.配置MyBatis Plus的分页插件 ```java @Configuration public class MybatisPlusConfig { @Autowired private DataSource dataSource; @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); } @Bean public SqlSessionFactory sqlSessionFactory() throws Exception { MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean(); sqlSessionFactory.setDataSource(dataSource); sqlSessionFactory.setPlugins(new Interceptor[]{paginationInterceptor()}); //添加分页插件 return sqlSessionFactory.getObject(); } } ``` 3.使用PageHelper的分页接口进行分页 ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public Page<User> findUserList(Integer pageNum, Integer pageSize) { PageHelper.startPage(pageNum, pageSize); List<User> userList = userMapper.selectList(null); PageInfo<User> pageInfo = new PageInfo<>(userList); return pageInfo.toPageInfo(); } } ``` 4.使用MyBatis Plus的分页接口进行分页 ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public IPage<User> findUserList(Integer pageNum, Integer pageSize) { Page<User> page = new Page<>(pageNum, pageSize); return userMapper.selectPage(page, null); } } ``` 以上便是使用Spring Boot整合PageHelper和MyBatis Plus进行分页的示例代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值