从零开始搭建springboot项目3:Mybatis+Druid+lombok

这一步是为了配置数据库

这里我使用的是常见的mysql+MyBatis+Druid的配置

使用mysql数据库,通过MyBatis连接(实质也是JDBC),使用Druid数据源监控。

1.继续在Pom.xml编写依赖包

        <!--数据库 mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!--数据库 mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.1</version>
        </dependency>
        <!--数据库的数据源 druid-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.21</version>
        </dependency>

这里注意一点,druid这个依赖的是druid-spring-boot-starter,而不是druid,虽然两者都可以依赖,但druid的话是无法有内置监控页面的。

 

2.编写application.yml配置

spring:
  port: 8080
  #热部署
  devtools:
    restart:
      enabled: true
      additional-paths: src/main/java
  #数据库配置
  datasource:
    #1.JDBC
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/sardines?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
    username: root
    password: root
    druid:
      #2.连接池配置
      #初始化连接池的连接数量 大小,最小,最大
      initial-size: 5
      min-idle: 5
      max-active: 20
      #配置获取连接等待超时的时间
      max-wait: 60000
      #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
      time-between-eviction-runs-millis: 60000
      # 配置一个连接在池中最小生存的时间,单位是毫秒
      min-evictable-idle-time-millis: 30000
      validation-query: SELECT 1 FROM DUAL
      test-while-idle: true
      test-on-borrow: true
      test-on-return: false
      # 是否缓存preparedStatement,也就是PSCache  官方建议MySQL下建议关闭   个人建议如果想用SQL防火墙 建议打开
      pool-prepared-statements: true
      max-pool-prepared-statement-per-connection-size: 20
      # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
      filter:
        stat:
          merge-sql: true
          slow-sql-millis: 5000
      #3.基础监控配置
      web-stat-filter:
        enabled: true
        url-pattern: /*
        #设置不统计哪些URL
        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
        session-stat-enable: true
        session-stat-max-count: 100
      stat-view-servlet:
        enabled: true
        url-pattern: /druid/*
        reset-enable: true
        #设置监控页面的登录名和密码
        login-username: admin
        login-password: 123456
        allow: 127.0.0.1
        #deny: 122.1.1.1

这里解释下配置,除了代码里的注释外,最后两行 allow: 127.0.0.1 表示允许127.0.0.1(本机访问),deny表示不允许访问的对象。

PS:数据库的url配置用自己的数据库路径,数据库用户密码也用自己的,我这边都是root(其实应该这句话不用说。。)

3.测试内置的监控页面(不是必须的)

 

我在上面配置中定的用户名密码是admin和123456,所以根据这个登录,然后就可以监控到很多sql操作方面的情况。druid的重点就在于可以监控限制,很方便。

 

4.导入lombok依赖包(非必须)

lombok是什么?

lombok可以说是用来写代码偷懒的一个包,它可以通过注解自动写无参构造器、封装、toString等等,可以让自己写起来更轻松

lombok未安装插件前需安装插件

File->Settings->Plugins  搜索lombok安装

安装完毕,File->Settings->Build,Execution,Doployment->Compiler->Annotation Processors ->打钩 Enable annotation processing

然后重启idea。

还是在POM.xml中依赖包

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.12</version>
            <scope>provided</scope>
        </dependency>

 

5.使用lombok(非必须,也可手动写封装)

 

6.使用mybatis写mapper类(两种方法)

首先创建mapper文件夹或者Dao文件夹,因为mapper属于MVC的Dao层

第一种:在启动类注解定义mapper包位置,该包下的interface都默认为mapper

 

第二种:在单个interface文件中设置

 

7.配置mybatis(还是在application.yml中)

#mybatis配置
mybatis:
  #设置基本包 # 注意:对应实体类的路径
  type-aliases-package: com.sardine.myproject.pojo
  #告诉去哪找xml文件 #注意:一定要对应mapper映射xml文件的所在路径
  mapper-locations: classpath:mybatis/mapper/*.xml

 

 

8.在mapper文件正式写sql语句

 

 

9.暂时不写业务层,直接写controller层写输出

 

实际页面执行

 

Druid监控

测试成功,无报错,在druid页面可查看sql信息,sql无问题

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值