單手擼了個springboot+mybatis+druid

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

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

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

文章提綱:mysql

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

1. 建立springboot工程

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

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

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

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

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

2. 配置pom.xml

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

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.10</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>

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

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

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

  1. 配置數據源

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

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

4. 設置mybatis

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

  1. 首先在resource目錄下建立一個mybatis-config.xml文件,文件內容爲:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <mappers>
    </mappers>
</configuration>
  1. 在main包中的根目錄下建立一個存放mapper實體的資源文件,在resource文件下建立一個文件夾mapper用來存放mapper的xml文件。

  1. 配置好資源文件路徑以後,就能夠在application.yml中加入mybatis的配置了,以下是一個mybatis的配置內容:
#mybatis的mapper配置文件
mybatis:
  config-location: classpath:mybatis-config.xml  # mybatis配置文件所在路徑
  #mapper-locations: classpath:mapper/*.xml   # 全部的mapper映射文件
  type-aliases-package: com.becl.dao.mapper # 定義全部操做類的別名所在包
debug: true

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

  1. 此時須要有一個數據庫表來作測試,咱們在數據庫建立一個表,而且插入一條數據:
CREATE TABLE Memeber (
`id`  int(11) NOT NULL AUTO_INCREMENT ,
`name`  varchar(255) NULL ,
PRIMARY KEY (`id`)
);

INSERT INTO memeber VALUES(1,"jas")
  1. 在mapper包中建立Memeber的mapper接口:
public interface MemeberMapper {
    /**
     * 根據ID獲取記錄
     * @param id
     * @return
     */
    public Map findObjectById(Integer id);
}
  1. 在resource中的mapper文件夾建立memberMapper.xml,而且在mapper中增長一個findObjectById的SQL查詢語句。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--映射文件配置,namespace指向接口-->
<mapper namespace="com.example.mybatisanddruid.mapper.MemeberMapper">
#根據ID查詢記錄
<select id="findObjectById" parameterType="Integer" resultType="Map">
        select * from memeber where id = #{value}
    </select>
</mapper>

5. hello world

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

@Controller
@RequestMapping("/test")
public class TestController {
    @Resource
    private MemeberMapper memeberMapper=null;
    
    @RequestMapping("/one")
    @ResponseBody
    public Map testdb(){
        return  memeberMapper.findObjectById(1);
    }
}

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

@MapperScan("com.example.mybatisanddruid.mapper")

這樣啓動類就變成:

@SpringBootApplication
@MapperScan("com.example.mybatisanddruid.mapper")
public class MybatisAndDruidApplication {

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

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

{"name":"jas","id":1}

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

  1. 設置Druid監控配置

druid的使用須要作一些配置,如今咱們來在根目錄下建立一個包config,在config包中間建立一個叫作DruidConfig.java,而且在裏寫入下面的內容:

@Configuration
public class DruidConfig {
    @Bean
    public ServletRegistrationBean druidServlet() { // 主要實現WEB監控的配置處理
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*"); // 進行druid監控的配置處理操做
        servletRegistrationBean.addInitParameter("allow",
                "127.0.0.1,192.168.1.159"); // 白名單
        servletRegistrationBean.addInitParameter("deny", "192.168.1.200"); // 黑名單
        servletRegistrationBean.addInitParameter("loginUsername", "stat"); // 用戶名
        servletRegistrationBean.addInitParameter("loginPassword", "Wkt_sTat_1031"); // 密碼
        servletRegistrationBean.addInitParameter("resetEnable", "false"); // 是否能夠重置數據源
        return servletRegistrationBean ;
    }
    @Bean
    public FilterRegistrationBean filterRegistrationBean() {
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean() ;
        filterRegistrationBean.setFilter(new WebStatFilter());

        filterRegistrationBean.addUrlPatterns("/*"); // 全部請求進行監控處理
        filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.css,/druid/*");
        return filterRegistrationBean ;
    }
    @Bean
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource druidDataSource() {
        return new DruidDataSource();
    }
    
}

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

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

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

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


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

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