SpringBoot整合Mysql,MyBatis,Durid

一:整合Mysql+Druid

主要依赖

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <!--加这个表示该依赖在编译的时候不会使用到,只有在运行的时候才会使用到-->
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.12</version>
        </dependency>
    </dependencies>

编写配置类

spring:
  datasource:
    druid:
      username: root
      password: root123456
      jdbcUrl: jdbc:mysql://zzw.study:3306/boot-study
      driverClassName: com.mysql.cj.jdbc.Driver
      initialSize: 5
      minIdle: 5
      maxActive: 20
      maxWait: 60000
      timeBetweenEvictionRunsMillis: 60000
      minEvictableIdleTimeMillis: 300000
      validationQuery: SELECT 1 FROM DUAL
      testWhileIdle: true
      testOnBorrow: false
      testOnReturn: false
      poolPreparedStatements: true
      filters: stat,wall
      maxPoolPreparedStatementPerConnectionSize: 20
      useGlobalDataSourceStat: true
#      开启慢sql记录功能
      connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

编写自定义数据源属性配置类

package com.study.jdbcanddruid.config;

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;

@ConfigurationProperties(prefix = "spring.datasource.druid")
@Getter
@Setter
public class DruidConfigProperties {
    private String jdbcUrl;

    private String driverClassName;

    private Integer initialSize;

    private Integer maxActive;

    private Integer minIdle;

    private long maxWait;

    private boolean poolPreparedStatements;

    public String filters;

    private String username;

    private String password;
}

编写druid配置类

package com.study.jdbcanddruid.config;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.sql.SQLException;

@Configuration
@EnableConfigurationProperties(value = DruidConfigProperties.class)
@SuppressWarnings("all")
public class DruidConfig {
    @Autowired
    private DruidConfigProperties druidConfigProperties;

    @Bean(initMethod = "init")
    public DruidDataSource dataSource() throws SQLException {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setUsername(druidConfigProperties.getUsername());
        dataSource.setPassword(druidConfigProperties.getPassword());
        dataSource.setUrl(druidConfigProperties.getJdbcUrl());
        dataSource.setDriverClassName(druidConfigProperties.getDriverClassName());
        dataSource.setInitialSize(druidConfigProperties.getInitialSize());
        dataSource.setMinIdle(druidConfigProperties.getMinIdle());
        dataSource.setMaxActive(druidConfigProperties.getMaxActive());
        dataSource.setMaxWait(druidConfigProperties.getMaxWait());
        dataSource.setFilters(druidConfigProperties.getFilters());
        dataSource.setPoolPreparedStatements(druidConfigProperties.isPoolPreparedStatements());
        return dataSource;
    }

    /**
     * 配置druid管理后台的servlet
     * @return
     */
    @Bean
    public ServletRegistrationBean statViewSerlvet() {
        ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
        // 添加IP白名单
        bean.addInitParameter("allow", "127.0.0.1");
        // 添加IP黑名单,当白名单和黑名单重复时,黑名单优先级更高
        bean.addInitParameter("deny", "192.168.25.123");
        // 添加控制台管理用户
        bean.addInitParameter("loginUsername", "admin");
        bean.addInitParameter("loginPassword", "123456");
        // 是否能够重置数据
        bean.addInitParameter("resetEnable", "false");
        return bean;
    }

    @Bean
    public FilterRegistrationBean filterRegistrationBean() {
        FilterRegistrationBean frb = new FilterRegistrationBean(new WebStatFilter());
        // 添加过滤规则
        frb.addUrlPatterns("/*");
        // 忽略过滤格式
        frb.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*,");
        return frb;
    }
}

测试 编写controller

package com.study.jdbcanddruid.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;

@RestController
public class DemoController {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    @GetMapping("/test01")
    public Object getTask() {
        List<Map<String, Object>> maps = jdbcTemplate
                .queryForList("select * from test limit 2");

        return maps;
    }
}

实用druid数据监控功能:


image.png

二:整合MyBatis

添加依赖

 <dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.1</version>
 </dependency>

配置mybaits

mybatis:
  configuration:
    map-underscore-to-camel-case: true
  mapper-locations: classpath:/mapper/*.xml
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。