成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

單手?jǐn)]了個(gè)springboot+mybatis+druid

本文旨在用最通俗的語(yǔ)言講述最枯燥的基本知識(shí)

創(chuàng)新互聯(lián)主營(yíng)云縣網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都app開(kāi)發(fā),云縣h5微信小程序搭建,云縣網(wǎng)站營(yíng)銷(xiāo)推廣歡迎云縣等地區(qū)企業(yè)咨詢

最近身邊的程序員掀起了學(xué)習(xí)springboot的熱潮,說(shuō)什么學(xué)會(huì)了springboot在大街上就可以橫著走、什么有了springboot媽媽再也不擔(dān)心我的編程了、什么BAT都喜歡的框架…聽(tīng)得作者那個(gè)心癢癢的,于是找了個(gè)時(shí)間,下載了個(gè)idea來(lái)玩一波springboot,對(duì)了…用springboot最好用idea,如果你還在用eclipse,刪了吧。

在這里解釋一下為什么是springboot+mybatis+druid,是因?yàn)樽髡哒J(rèn)為但凡任何一個(gè)有靈魂的項(xiàng)目,都少不了數(shù)據(jù)庫(kù),作者不喜歡用JPA那種混SQL的語(yǔ)法,因此選了mybatis,而Druid是阿里系(真香~)的一種數(shù)據(jù)庫(kù)連接池框架,在上一個(gè)項(xiàng)目作者用的屢試不爽,因此打算繼續(xù)用,為啥屢試不爽?看文末吧。

文章提綱:

  1. 創(chuàng)建springboot工程

  2. 配置pom.xml

  3. 配置數(shù)據(jù)源

  4. 設(shè)置mybatis

  5. hello world

  6. 設(shè)置Druid監(jiān)控配置

1. 創(chuàng)建springboot工程

只要你有idea,創(chuàng)建一個(gè)springboot工程,就跟捏死一個(gè)螞蟻一樣簡(jiǎn)單,因?yàn)閕dea里深度集成了對(duì)springboot項(xiàng)目的支持,你直接不停的next到最后,它就會(huì)幫你創(chuàng)建出一個(gè)springboot工程。

  1. 首先打開(kāi)idea->Create New project->選擇項(xiàng)目類(lèi)型:這里選擇spring initializr,然后next。

    單手?jǐn)]了個(gè)springboot+mybatis+druid

  2. 創(chuàng)建項(xiàng)目,填寫(xiě)項(xiàng)目名稱,注意:不要能駝峰寫(xiě)法,可以用中橫線,填寫(xiě)完畢后繼續(xù)next。

  3. 選擇依賴,所謂依賴就是你在設(shè)計(jì)這個(gè)項(xiàng)目的框架時(shí),分析這個(gè)項(xiàng)目需要用到哪些jar或者組件,比如緩存要用到redis,數(shù)據(jù)庫(kù)要用到MySQL等…這里因?yàn)檠菔卷?xiàng)目,就不選擇太多其它亂七八糟的依賴了。

  4. 選好依賴之后,又是一路狂點(diǎn)next,直到最后finish一下,一個(gè)springboot項(xiàng)目就創(chuàng)建好了。

2. 配置pom.xml

想想,我們需要哪些jar?
數(shù)據(jù)庫(kù)要用到mybatis,數(shù)據(jù)庫(kù)連接池要用到Druid、MySQL橋接器要用到mysql-connector,因此要maven倉(cāng)庫(kù)(點(diǎn)我去倉(cāng)庫(kù))中找到搜索這些pom加進(jìn)去。注意,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中


細(xì)心的老鐵會(huì)發(fā)現(xiàn),MySQL的version里的內(nèi)容是紅色的,這是什么原因呢?
這是因?yàn)槲覀円雙om時(shí),這些版本的jar在本地maven倉(cāng)庫(kù)還沒(méi)有,而Druid的pom里的version沒(méi)有顯示紅色,是因?yàn)橹暗捻?xiàng)目用到了這個(gè)版本的Druid,已經(jīng)被下載到本地Maven倉(cāng)庫(kù)里了。
因此我們需要把本地沒(méi)有的jar下載到本地倉(cāng)庫(kù),右鍵pom.xml彈出菜單,選擇Maven,彈出菜單選擇reimport

Reimport過(guò)程中再idea底部會(huì)有進(jìn)度條顯示,等進(jìn)度條消失,在觀察pom.xml,紅色已經(jīng)消失,說(shuō)明依賴已經(jīng)裝備完成。

  1. 配置數(shù)據(jù)源

接下來(lái)就是要多springboot項(xiàng)目做一個(gè)全局配置,默認(rèn)會(huì)在src->main->resource目錄下生產(chǎn)空白文件application.properties,作者喜歡用yml因此直接改名成yml即可。
首先是數(shù)據(jù)源的配置,下面是一份數(shù)據(jù)源的配置,每個(gè)參數(shù)的解釋都寫(xiě)了注釋,因此讀者可以直接復(fù)制一下內(nèi)容進(jìn)去,只需要改一下url、username、password


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

4. 設(shè)置mybatis

繼續(xù)在application.yml中設(shè)置mybatis,mybatis的配置也簡(jiǎn)單,
主要是為了設(shè)置mybatis的配置文件已經(jīng)mapper文件所在。

  1. 首先在resource目錄下創(chuàng)建一個(gè)mybatis-config.xml文件,文件內(nèi)容為:


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包中的根目錄下創(chuàng)建一個(gè)存放mapper實(shí)體的資源文件,在resource文件下創(chuàng)建一個(gè)文件夾mapper用來(lái)存放mapper的xml文件。

  2. 配置好資源文件路徑之后,就可以在application.yml中加入mybatis的配置了,如下是一個(gè)mybatis的配置內(nèi)容:


1
#mybatis的mapper配置文件
2 mybatis:
3   config-location: classpath:mybatis-config.xml  # mybatis配置文件所在路徑
4   #mapper-locations: classpath:mapper/*.xml   # 所有的mapper映射文件
5   type-aliases-package: com.becl.dao.mapper # 定義所有操作類(lèi)的別名所在包
6 debug: true

最終application.yml的內(nèi)容如下圖:

  1. 此時(shí)需要有一個(gè)數(shù)據(jù)庫(kù)表來(lái)做測(cè)試,我們?cè)跀?shù)據(jù)庫(kù)創(chuàng)建一個(gè)表,并且插入一條數(shù)據(jù):


1
CREATE TABLE Memeber (
2 `id`  int(11) NOT NULL AUTO_INCREMENT ,
3 `name`  varchar(255) NULL ,
4 PRIMARY KEY (`id`)
5 );
6
7 INSERT INTO memeber VALUES(1,"jas")
  1. 在mapper包中創(chuàng)建Memeber的mapper接口:


1

public
 


interface
 

MemeberMapper
 
{
2      /**
3      * 根據(jù)ID獲取記錄
4      *  @param  id
5      *  @return
6      */
7      public  Map  findObjectById (Integer id) ;
8 }
  1. 在resource中的mapper文件夾創(chuàng)建memberMapper.xml,并且在mapper中增加一個(gè)findObjectById的SQL查詢語(yǔ)句。


 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 #根據(jù)ID查詢記錄
8 < select   id = "findObjectById"   parameterType = "Integer"   resultType = "Map" >
9         select * from memeber where id = #{value}
10      </ select >
11 </ mapper >

5. hello world

走到這一步,基本上已經(jīng)是大功告成了,我們來(lái)寫(xiě)一個(gè)測(cè)試類(lèi)試試,在根目錄創(chuàng)建一個(gè)controller的包,在包中創(chuàng)建一個(gè)Java類(lèi),如下:


 1

@Controller
2 @RequestMapping ( "/test" )
3 public   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 }

創(chuàng)建完之后,我們運(yùn)行項(xiàng)目,找到啟動(dòng)類(lèi)MybatisAndDruidApplication右鍵run,發(fā)現(xiàn)報(bào)錯(cuò),提示沒(méi)有掃描到mapper包,為什么呢?那是mapper需要手動(dòng)在啟動(dòng)類(lèi)中加入:


1

@MapperScan
(

"com.example.mybatisanddruid.mapper"
)

這樣啟動(dòng)類(lèi)就變成:


1

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

再次運(yùn)行,沒(méi)有報(bào)錯(cuò),在瀏覽器輸入:http://localhost:8888/test/one
輸出了ID為1的記錄:


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

由此可見(jiàn),springboot-mybatis已經(jīng)搭建成功,此時(shí)有人會(huì)問(wèn),那Druid呢?

  1. 設(shè)置Druid監(jiān)控配置

druid的使用需要做一些配置,現(xiàn)在我們來(lái)在根目錄下創(chuàng)建一個(gè)包c(diǎn)onfig,在config包中間創(chuàng)建一個(gè)叫做DruidConfig.java,并且在里寫(xiě)入下面的內(nèi)容:


 1

@Configuration
2 public   class   DruidConfig   {
3      @Bean
4      public  ServletRegistrationBean  druidServlet ()   {  // 主要實(shí)現(xiàn)WEB監(jiān)控的配置處理
5         ServletRegistrationBean servletRegistrationBean =  new  ServletRegistrationBean( new  StatViewServlet(),  "/druid/*" );  // 進(jìn)行druid監(jiān)控的配置處理操作
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" );  // 是否可以重置數(shù)據(jù)源
12          return  servletRegistrationBean ;
13     }
14      @Bean
15      public  FilterRegistrationBean  filterRegistrationBean ()   {
16         FilterRegistrationBean filterRegistrationBean =  new  FilterRegistrationBean() ;
17         filterRegistrationBean.setFilter( new  WebStatFilter());
18
19         filterRegistrationBean.addUrlPatterns( "/*" );  // 所有請(qǐng)求進(jìn)行監(jiān)控處理
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 }

配置中的內(nèi)容就不一一細(xì)講, 有興趣的直接百度一下druid就出來(lái)很多答案了,現(xiàn)在重新運(yùn)行一下項(xiàng)目,運(yùn)行成功之后,在瀏覽器中輸入:http://localhost:8888/druid
這時(shí)候,druid監(jiān)控平臺(tái)就出現(xiàn)了

此時(shí)我們輸入在DruidConfig中設(shè)置的loginUsername和loginPassword點(diǎn)擊登錄,一個(gè)完整的druid監(jiān)控管理平臺(tái)就呈現(xiàn)在我們啦~

單手?jǐn)]了個(gè)springboot+mybatis+druid

Druid非常強(qiáng)大,在這里你可以查看SQL的執(zhí)行情況、慢SQL、API請(qǐng)求情況等,根據(jù)這些可以做一些性能的調(diào)優(yōu),至于詳細(xì)的用法,就靠大家自行學(xué)習(xí)啦~

如果有老鐵需要項(xiàng)目源碼,請(qǐng)加我:sisi-ceo。



覺(jué)得本文對(duì)你有幫助?請(qǐng)分享給更多人
關(guān)注「編程無(wú)界」,提升裝逼技能

單手?jǐn)]了個(gè)springboot+mybatis+druid

當(dāng)前名稱:單手?jǐn)]了個(gè)springboot+mybatis+druid
URL標(biāo)題:http://jinyejixie.com/article4/gdjoie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃面包屑導(dǎo)航、建站公司、手機(jī)網(wǎng)站建設(shè)搜索引擎優(yōu)化、用戶體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
郸城县| 墨江| 黔江区| 大渡口区| 绥宁县| 台山市| 通江县| 通江县| 紫金县| 张北县| 砚山县| 磐安县| 邻水| 汾西县| 丹凤县| 太仆寺旗| 陇南市| 汝阳县| 石首市| 南江县| 成安县| 文成县| 合肥市| 怀远县| 淳安县| 漯河市| 淮北市| 历史| 晋州市| 文水县| 凌源市| 彰化县| 高青县| 安福县| 米脂县| 米易县| 汉寿县| 水富县| 铜川市| 安远县| 军事|