零号编程-SpringBoot成长之路(一)集成Mybatis+durid+pagehelper

1. 前言

最近一直在上班,因为刚毕业,对工作慢慢的也适应了,之后会定期更新帖子。在上班期间用的都是SpringBoot,所以近来会给大家整理一些实用的教程,帮助刚开始接触SpringBoot的小伙伴能更快的使用这个语言。在本教程中出现的任何问题,大家可以在最下方进行反馈,那么我们就开始今天的学习吧!

2. 创建项目

1、打开IDEA单击createNewProject创建新项目,然后点右下角NEXT
1、创建新项目
2、写好信息,然后NEXT
在这里插入图片描述
3、选择Web模块,点NEXT
在这里插入图片描述
4、点Finsh即可
在这里插入图片描述
5、自动导入依赖
在这里插入图片描述
6、项目目录结构如下
在这里插入图片描述

3. 引入jar包

直接给大家上干货,pom文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.dzj</groupId>
    <artifactId>springbootexercise</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springbootexercise</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- Mybatis -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.0</version>
        </dependency>
        <!--Mybatis 分页插件 pagehelper -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.3</version>
        </dependency>
        <!-- mysql 数据库驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <!-- 事务支持 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

        <!-- druid连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.2</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

4. 编写配置文件

在src/resource目录下创建application.yml文件,引入以下配置

server:
  #端口配置
  port: 8086
##mybatis配置
mybatis:
  configuration:
    #开启MyBatis的二级缓存
    cache-enabled: true
  #Mapper.xml所在的位置
  mapper-locations: classpath*:mybatis/**/*Mapper.xml
  #entity扫描的包名
  type-aliases-package: com.example
pagehelper:
  helperDialect: mysql
  params: count=countSql
  reasonable: true
  supportMethodsArguments: true
spring:
  #数据源配置
  datasource:
    #druid
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/directory?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
      username: root
      password: root
      # 初始化大小,最小,最大
      initial-size: 5
      min-idle: 5
      max-active: 20
      # 配置获取连接等待超时的时间
      max-wait: 60000
      # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
      time-between-eviction-runs-millis: 60000
      # 配置一个连接在池中最小生存的时间,单位是毫秒
      min-evictable-idle-time-millis: 300000
      #检测连接是否有效的sql
      validation-query: SELECT 'x'
      validation-query-timeout: 60000
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
      # PSCache Mysql下建议关闭
      pool-prepared-statements: false
      max-pool-prepared-statement-per-connection-size: -1
      # WebStatFilter配置,说明请参考Druid Wiki,配置_配置WebStatFilter
      web-stat-filter:
      #启动项目后访问 http://127.0.0.1:8080/druid
      #是否启用StatFilter默认值true
        enabled: true
        url-pattern: /*
        exclusions: '*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*'
        #缺省sessionStatMaxCount是1000个
        session-stat-max-count: 1000
        #关闭session统计功能
        session-stat-enable: false
        #配置principalSessionName,使得druid能够知道当前的session的用户是谁
        #如果你session中保存的是非string类型的对象,需要重载toString方法
        principalSessionName: xxx.user
        #如果user信息保存在cookie中,你可以配置principalCookieName,使得druid知道当前的user是谁
        principalCookieName: xxx.user
        #druid 0.2.7版本开始支持profile,配置profileEnable能够监控单个url调用的sql列表。
        profile-enable: false
      # StatViewServlet配置,说明请参考Druid Wiki,配置_StatViewServlet配置
      stat-view-servlet:
        #启动项目后访问 http://127.0.0.1:8080/druid
        #是否启用StatViewServlet默认值true
        urlPattern: /druid/*
        enabled: true
        #禁用HTML页面上的“Reset All”功能
        resetEnable: false
        #用户名
        loginUsername: admin
        #密码
        loginPassword: admin
        #IP白名单(没有配置或者为空,则允许所有访问)
        allow: 127.0.0.1,192.168.1.11
        #IP黑名单 (存在共同时,deny优先于allow)
        deny: 192.168.1.73

复制完后的小伙伴们,一定要注意以下几点:

  1. jdbc的值换成自己的。
  2. mapper-locations里面根据你mapper.xml文件的根路径来修改
  3. type-aliases-package配置到启动类的路径即可`
  4. mybatis所配置的实体类别名和mapper配置文件所在的地方改成自己的
  5. 如果你要用druid监控的话,那么你的访问IP一定要在IP白名单中

5. 启动类

package com.example.springbootdemo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
//此处必须加入MapperScan注解,前面根据自己项目来更改即可
@MapperScan("com.example.springbootdemo.**.mapper")
public class SpringbootdemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootdemoApplication.class, args);
    }

}

6. 运行项目

运行图
在这里插入图片描述

7. 访问durid监控

地址栏
在这里插入图片描述
页面图片
在这里插入图片描述
登陆后
在这里插入图片描述

8.使用pagehelper分页插件

前端请求
在这里插入图片描述
参数说明:
page:代表当前第几页
limit:显示10条数据

后端代码(controller)

//1、从前端请求域中获取page和limit
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = Objects.requireNonNull(servletRequestAttributes, "获取request失败").getRequest();
int page = Integer.parseInt(request.getParameter("page"));
int limit = Integer.parseInt(request.getParameter("limit"));
//2、执行分页方法,将两个参数传进去
Page<Demo> pages = PageHelper.startPage(page, limit);
//3、得到分页后的集合
List<Demo> resultList = pages.getResult();
//4、得到查询的总数
long count = pages.getTotal();

通过以上代码可以查到数据的总数和分页后的数据,最后将数据返回给前端的数据表格即可,每个数据表格返回的格式都不太一样哦。具体就不体现了(好吧,是太菜了,怕被喷)

9. 尾声

那么今天我们的学习就到这里了,下一期我们学习Springboot集成日志,并且可以把日志打印在控制台上,小伙伴们拜拜~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值