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

編寫自定義數(shù)據(jù)源屬性配置類

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黑名單,當白名單和黑名單重復時啸驯,黑名單優(yōu)先級更高
        bean.addInitParameter("deny", "192.168.25.123");
        // 添加控制臺管理用戶
        bean.addInitParameter("loginUsername", "admin");
        bean.addInitParameter("loginPassword", "123456");
        // 是否能夠重置數(shù)據(jù)
        bean.addInitParameter("resetEnable", "false");
        return bean;
    }

    @Bean
    public FilterRegistrationBean filterRegistrationBean() {
        FilterRegistrationBean frb = new FilterRegistrationBean(new WebStatFilter());
        // 添加過濾規(guī)則
        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數(shù)據(jù)監(jiān)控功能:


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
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末客扎,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子罚斗,更是在濱河造成了極大的恐慌徙鱼,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異袱吆,居然都是意外死亡厌衙,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門绞绒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來婶希,“玉大人,你說我怎么就攤上這事蓬衡∮麒荆” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵狰晚,是天一觀的道長筒饰。 經常有香客問我,道長壁晒,這世上最難降的妖魔是什么瓷们? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮秒咐,結果婚禮上谬晕,老公的妹妹穿的比我還像新娘。我一直安慰自己反镇,他們只是感情好固蚤,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著歹茶,像睡著了一般夕玩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上惊豺,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天燎孟,我揣著相機與錄音,去河邊找鬼尸昧。 笑死揩页,一個胖子當著我的面吹牛,可吹牛的內容都是我干的烹俗。 我是一名探鬼主播爆侣,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼幢妄!你這毒婦竟也來了兔仰?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤蕉鸳,失蹤者是張志新(化名)和其女友劉穎乎赴,沒想到半個月后忍法,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡榕吼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年饿序,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片羹蚣。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡原探,死狀恐怖,靈堂內的尸體忽然破棺而出度宦,到底是詐尸還是另有隱情踢匣,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布戈抄,位于F島的核電站,受9級特大地震影響后专,放射性物質發(fā)生泄漏划鸽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一戚哎、第九天 我趴在偏房一處隱蔽的房頂上張望裸诽。 院中可真熱鬧,春花似錦型凳、人聲如沸丈冬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽埂蕊。三九已至,卻和暖如春疏唾,著一層夾襖步出監(jiān)牢的瞬間蓄氧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工槐脏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留喉童,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓顿天,卻偏偏與公主長得像堂氯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子牌废,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345