本文旨在用最通俗的語言講述最枯燥的基本知識
最近身邊的程式設計師掀起了學習springboot的熱潮,說什麼學會了springboot在大街上就可以橫著走、什麼有了springboot媽媽再也不擔心我的程式設計了、什麼BAT都喜歡的框架…聽得作者那個心癢癢的,於是找了個時間,下載了個idea來玩一波springboot,對了…用springboot最好用idea,如果你還在用eclipse,刪了吧。
在這裡解釋一下為什麼是springboot+mybatis+druid,是因為作者認為但凡任何一個有靈魂的專案,都少不了資料庫,作者不喜歡用JPA那種混SQL的語法,因此選了mybatis,而Druid是阿里系(真香~)的一種資料庫連線池框架,在上一個專案作者用的屢試不爽,因此打算繼續用,為啥屢試不爽?看文末吧。
文章提綱:
- 建立springboot工程
- 配置pom.xml
- 配置資料來源
- 設定mybatis
- hello world
- 設定Druid監控配置
1. 建立springboot工程
只要你有idea,建立一個springboot工程,就跟捏死一個螞蟻一樣簡單,因為idea裡深度整合了對springboot專案的支援,你直接不停的next到最後,它就會幫你建立出一個springboot工程。
首先開啟idea->Create New project->選擇專案型別:這裡選擇spring initializr,然後next。
建立專案,填寫專案名稱,注意:不要能駝峰寫法,可以用中橫線,填寫完畢後繼續next。
選擇依賴,所謂依賴就是你在設計這個專案的框架時,分析這個專案需要用到哪些jar或者元件,比如快取要用到Redis,資料庫要用到MySQL等…這裡因為演示專案,就不選擇太多其它亂七八糟的依賴了。
選好依賴之後,又是一路狂點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,紅色已經消失,說明依賴已經裝備完成。
- 配置資料來源
接下來就是要多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檔案所在。
- 首先在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>
複製程式碼
在main包中的根目錄下建立一個存放mapper實體的資原始檔,在resource檔案下建立一個資料夾mapper用來存放mapper的xml檔案。
配置好資原始檔路徑之後,就可以在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的內容如下圖:
- 此時需要有一個資料庫表來做測試,我們在資料庫建立一個表,並且插入一條資料:
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")
複製程式碼
- 在mapper包中建立Memeber的mapper介面:
1public interface MemeberMapper {
2 /**
3 * 根據ID獲取記錄
4 * @param id
5 * @return
6 */
7 public Map findObjectById(Integer id);
8}
複製程式碼
- 在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呢?
- 設定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。
覺得本文對你有幫助?請分享給更多人
關注「程式設計無界」,提升裝逼技能