單手擼了個springboot+mybatis+druid

本文旨在用最通俗的語言講述最枯燥的基本知識css

最近身邊的程序員掀起了學習springboot的熱潮,說什麼學會了springboot在大街上就能夠橫着走、什麼有了springboot媽媽不再擔憂個人編程了、什麼BAT都喜歡的框架…聽得做者那個心癢癢的,因而找了個時間,下載了個idea來玩一波springboot,對了…用springboot最好用idea,若是你還在用eclipse,刪了吧。java

在這裏解釋一下爲何是springboot+mybatis+druid,是由於做者認爲但凡任何一個有靈魂的項目,都少不了數據庫,做者不喜歡用JPA那種混SQL的語法,所以選了mybatis,而Druid是阿里系(真香~)的一種數據庫鏈接池框架,在上一個項目做者用的屢試不爽,所以打算繼續用,爲啥屢試不爽?看文末吧。mysql

文章提綱:程序員

  1. 建立springboot工程
  2. 配置pom.xml
  3. 配置數據源
  4. 設置mybatis
  5. hello world
  6. 設置Druid監控配置

1. 建立springboot工程

只要你有idea,建立一個springboot工程,就跟捏死一個螞蟻同樣簡單,由於idea裏深度集成了對springboot項目的支持,你直接不停的next到最後,它就會幫你建立出一個springboot工程。spring

  1. 首先打開idea->Create New project->選擇項目類型:這裏選擇spring initializr,而後next。
    sql

  2. 建立項目,填寫項目名稱,注意:不要能駝峯寫法,能夠用中橫線,填寫完畢後繼續next。
    數據庫

  3. 選擇依賴,所謂依賴就是你在設計這個項目的框架時,分析這個項目須要用到哪些jar或者組件,好比緩存要用到Redis,數據庫要用到MySQL等…這裏由於演示項目,就不選擇太多其它亂七八糟的依賴了。
    編程

  4. 選好依賴以後,又是一路狂點next,直到最後finish一下,一個springboot項目就建立好了。
    瀏覽器

2. 配置pom.xml

想一想,咱們須要哪些jar?
數據庫要用到mybatis,數據庫鏈接池要用到Druid、MySQL橋接器要用到mysql-connector,所以要maven倉庫(點我去倉庫)中找到搜索這些pom加進去。注意,mybatis要用mybatis-spring-boot-starter。緩存

 1       <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
2        <dependency>
3            <groupId>mysql</groupId>
4            <artifactId>mysql-connector-java</artifactId>
5            <version>5.1.6</version>
6        </dependency>
7        <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
8        <dependency>
9            <groupId>com.alibaba</groupId>
10            <artifactId>druid</artifactId>
11            <version>1.1.10</version>
12        </dependency>
13        <!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
14        <dependency>
15            <groupId>org.mybatis.spring.boot</groupId>
16            <artifactId>mybatis-spring-boot-starter</artifactId>
17            <version>1.3.2</version>
18        </dependency>
複製代碼

把上面這些pom放到pom.xml的dependencies中


細心的老鐵會發現,MySQL的version裏的內容是紅色的,這是什麼緣由呢?
這是由於咱們引入pom時,這些版本的jar在本地maven倉庫尚未,而Druid的pom裏的version沒有顯示紅色,是由於以前的項目用到了這個版本的Druid,已經被下載到本地Maven倉庫裏了。
所以咱們須要把本地沒有的jar下載到本地倉庫,右鍵pom.xml彈出菜單,選擇Maven,彈出菜單選擇reimport

Reimport過程當中再idea底部會有進度條顯示,等進度條消失,在觀察pom.xml,紅色已經消失,說明依賴已經裝備完成。

  1. 配置數據源

接下來就是要多springboot項目作一個全局配置,默認會在src->main->resource目錄下生產空白文件application.properties,做者喜歡用yml所以直接更名成yml便可。
首先是數據源的配置,下面是一份數據源的配置,每一個參數的解釋都寫了註釋,所以讀者能夠直接複製一下內容進去,只須要改一下url、username、password

 1spring:
2  #profiles: dev
3  messages:
4    basename: i18n/Messages,i18n/Pages
5  datasource:
6    type: com.alibaba.druid.pool.DruidDataSource    # 配置當前要使用的數據源的操做類型
7    driver-class-name: org.gjt.mm.mysql.Driver        # 配置MySQL的驅動程序類
8    url: jdbc:mysql://localhost:3306/wkt_stat           # 數據庫鏈接地址
9    username: root                                  # 數據庫用戶名
10    password: root                            # 數據庫鏈接密碼
11    dbcp2:                                          # 進行數據庫鏈接池的配置
12      min-idle: 5                                   # 數據庫鏈接池的最小維持鏈接數
13      initial-size: 5                               # 初始化提供的鏈接數
14      max-total: 5                                  # 最大的鏈接數
15      max-wait-millis: 200                          # 等待鏈接獲取的最大超時時間
複製代碼

4. 設置mybatis

繼續在application.yml中設置mybatis,mybatis的配置也簡單,
主要是爲了設置mybatis的配置文件已經mapper文件所在。

  1. 首先在resource目錄下建立一個mybatis-config.xml文件,文件內容爲:
1<?xml version="1.0" encoding="UTF-8" ?>
2<!DOCTYPE configuration
3        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
4        "http://mybatis.org/dtd/mybatis-3-config.dtd">

5<configuration>
6    <mappers>
7    </mappers>
8</configuration>
複製代碼
  1. 在main包中的根目錄下建立一個存放mapper實體的資源文件,在resource文件下建立一個文件夾mapper用來存放mapper的xml文件。

  2. 配置好資源文件路徑以後,就能夠在application.yml中加入mybatis的配置了,以下是一個mybatis的配置內容:

1#mybatis的mapper配置文件
2mybatis:
3  config-location: classpath:mybatis-config.xml  # mybatis配置文件所在路徑
4  #mapper-locations: classpath:mapper/*.xml   # 全部的mapper映射文件
5  type-aliases-package: com.becl.dao.mapper # 定義全部操做類的別名所在包
6debug: true
複製代碼

最終application.yml的內容以下圖:

  1. 此時須要有一個數據庫表來作測試,咱們在數據庫建立一個表,而且插入一條數據:
1CREATE TABLE Memeber (
2`id`  int(11) NOT NULL AUTO_INCREMENT ,
3`name`  varchar(255) NULL ,
4PRIMARY KEY (`id`)
5);
6
7INSERT INTO memeber VALUES(1,"jas")
複製代碼
  1. 在mapper包中建立Memeber的mapper接口:
1public interface MemeberMapper {
2    /**
3     * 根據ID獲取記錄
4     * @param id
5     * @return
6     */

7    public Map findObjectById(Integer id);
8}
複製代碼
  1. 在resource中的mapper文件夾建立memberMapper.xml,而且在mapper中增長一個findObjectById的SQL查詢語句。
 1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE mapper
3        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

5<!--映射文件配置,namespace指向接口-->
6<mapper namespace="com.example.mybatisanddruid.mapper.MemeberMapper">
7#根據ID查詢記錄
8<select id="findObjectById" parameterType="Integer" resultType="Map">
9        select * from memeber where id = #{value}
10    </select>
11</mapper>
複製代碼

5. hello world

走到這一步,基本上已是大功告成了,咱們來寫一個測試類試試,在根目錄建立一個controller的包,在包中建立一個Java類,以下:

 1@Controller
2@RequestMapping("/test")
3public class TestController {
4    @Resource
5    private MemeberMapper memeberMapper=null;
6
7    @RequestMapping("/one")
8    @ResponseBody
9    public Map testdb(){
10        return  memeberMapper.findObjectById(1);
11    }
12}
複製代碼

建立完以後,咱們運行項目,找到啓動類MybatisAndDruidApplication右鍵run,發現報錯,提示沒有掃描到mapper包,爲何呢?那是mapper須要手動在啓動類中加入:

1@MapperScan("com.example.mybatisanddruid.mapper")
複製代碼

這樣啓動類就變成:

1@SpringBootApplication
2@MapperScan("com.example.mybatisanddruid.mapper")
3public class MybatisAndDruidApplication {
4
5    public static void main(String[] args) {
6        SpringApplication.run(MybatisAndDruidApplication.class, args);
7    }
8}
複製代碼

再次運行,沒有報錯,在瀏覽器輸入:http://localhost:8888/test/one
輸出了ID爲1的記錄:

1{"name":"jas","id":1}
複製代碼

因而可知,springboot-mybatis已經搭建成功,此時有人會問,那Druid呢?

  1. 設置Druid監控配置
    druid的使用須要作一些配置,如今咱們來在根目錄下建立一個包config,在config包中間建立一個叫作DruidConfig.java,而且在裏寫入下面的內容:
 1@Configuration
2public class DruidConfig {
3    @Bean
4    public ServletRegistrationBean druidServlet() // 主要實現WEB監控的配置處理
5        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*"); // 進行druid監控的配置處理操做
6        servletRegistrationBean.addInitParameter("allow",
7                "127.0.0.1,192.168.1.159"); // 白名單
8        servletRegistrationBean.addInitParameter("deny""192.168.1.200"); // 黑名單
9        servletRegistrationBean.addInitParameter("loginUsername""stat"); // 用戶名
10        servletRegistrationBean.addInitParameter("loginPassword""Wkt_sTat_1031"); // 密碼
11        servletRegistrationBean.addInitParameter("resetEnable""false"); // 是否能夠重置數據源
12        return servletRegistrationBean ;
13    }
14    @Bean
15    public FilterRegistrationBean filterRegistrationBean() {
16        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean() ;
17        filterRegistrationBean.setFilter(new WebStatFilter());
18
19        filterRegistrationBean.addUrlPatterns("/*"); // 全部請求進行監控處理
20        filterRegistrationBean.addInitParameter("exclusions""*.js,*.gif,*.jpg,*.css,/druid/*");
21        return filterRegistrationBean ;
22    }
23    @Bean
24    @ConfigurationProperties(prefix = "spring.datasource")
25    public DataSource druidDataSource() {
26        return new DruidDataSource();
27    }
28
29}
複製代碼

配置中的內容就不一一細講, 有興趣的直接百度一下druid就出來不少答案了,如今從新運行一下項目,運行成功以後,在瀏覽器中輸入:http://localhost:8888/druid
這時候,druid監控平臺就出現了

此時咱們輸入在DruidConfig中設置的loginUsername和loginPassword點擊登陸,一個完整的druid監控管理平臺就呈如今咱們啦~

Druid很是強大,在這裏你能夠查看SQL的執行狀況、慢SQL、API請求狀況等,根據這些能夠作一些性能的調優,至於詳細的用法,就靠你們自行學習啦~

若是有老鐵須要項目源碼,請加我微信:sisi-ceo。


以爲本文對你有幫助?請分享給更多人
關注「編程無界」,提高裝逼技能

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息