成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

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

adie / 2651人閱讀

摘要:配置想想,我們需要哪些數(shù)據(jù)庫(kù)要用到,數(shù)據(jù)庫(kù)連接池要用到橋接器要用到,因此要倉(cāng)庫(kù)點(diǎn)我去倉(cāng)庫(kù)中找到搜索這些加進(jìn)去。

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

最近身邊的程序員掀起了學(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ù)用,為啥屢試不爽?看文末吧。

文章提綱:

創(chuàng)建springboot工程

配置pom.xml

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

設(shè)置mybatis

hello world

設(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工程。

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

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

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

選好依賴(lài)之后,又是一路狂點(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。

       
        
            mysql
            mysql-connector-java
            5.1.6
        
        
        
            com.alibaba
            druid
            1.1.10
        
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            1.3.2
        

把上面這些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ō)明依賴(lài)已經(jīng)裝備完成。

配置數(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ě)了注釋?zhuān)虼俗x者可以直接復(fù)制一下內(nèi)容進(jìn)去,只需要改一下url、username、password

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

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

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




    
    

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

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

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

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

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

CREATE TABLE Memeber (
`id`  int(11) NOT NULL AUTO_INCREMENT ,
`name`  varchar(255) NULL ,
PRIMARY KEY (`id`)
);

INSERT INTO memeber VALUES(1,"jas")

在mapper包中創(chuàng)建Memeber的mapper接口:

public interface MemeberMapper {
    /**
     * 根據(jù)ID獲取記錄
     * @param id
     * @return
     */
    public Map findObjectById(Integer id);
}

在resource中的mapper文件夾創(chuàng)建memberMapper.xml,并且在mapper中增加一個(gè)findObjectById的SQL查詢(xún)語(yǔ)句。





#根據(jù)ID查詢(xún)記錄

5. hello world

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

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

創(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)中加入:

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

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

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

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

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

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

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

設(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)容:

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

        filterRegistrationBean.addUrlPatterns("/*"); // 所有請(qǐng)求進(jìn)行監(jiān)控處理
        filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.css,/druid/*");
        return filterRegistrationBean ;
    }
    @Bean
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource druidDataSource() {
        return new DruidDataSource();
    }
    
}

配置中的內(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)在我們啦~

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ú)界」,提升裝逼技能

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/71972.html

相關(guān)文章

  • SpringBoot2.0之五 優(yōu)雅整合SpringBoot2.0+MyBatis+druid+Pa

    摘要:當(dāng)禁用時(shí),所有關(guān)聯(lián)對(duì)象都會(huì)即時(shí)加載。不同的驅(qū)動(dòng)在這方便表現(xiàn)不同。參考驅(qū)動(dòng)文檔或充分測(cè)試兩種方法來(lái)決定所使用的驅(qū)動(dòng)。需要適合的驅(qū)動(dòng)。系統(tǒng)默認(rèn)值是設(shè)置字段和類(lèi)是否支持駝峰命名的屬性。 ??上篇文章我們介紹了SpringBoot和MyBatis的整合,可以說(shuō)非常簡(jiǎn)單快捷的就搭建了一個(gè)web項(xiàng)目,但是在一個(gè)真正的企業(yè)級(jí)項(xiàng)目中,可能我們還需要更多的更加完善的框架才能開(kāi)始真正的開(kāi)發(fā),比如連接池、分...

    hatlonely 評(píng)論0 收藏0
  • springboot系列】springboot整合獨(dú)立模塊Druid + mybatis-plus

    摘要:申請(qǐng)連接時(shí)執(zhí)行檢測(cè)連接是否有效,做了這個(gè)配置會(huì)降低性能。作者在版本中使用,通過(guò)監(jiān)控界面發(fā)現(xiàn)有緩存命中率記錄,該應(yīng)該是支持。允許和不允許單條語(yǔ)句返回多個(gè)數(shù)據(jù)集取決于驅(qū)動(dòng)需求使用列標(biāo)簽代替列名稱(chēng)。需要驅(qū)動(dòng)器支持。將自動(dòng)映射所有復(fù)雜的結(jié)果。 項(xiàng)目github地址:https://github.com/5-Ason/aso... 具體可看 ./db/db-mysql 模塊 本文主要實(shí)現(xiàn)的是對(duì)...

    RobinTang 評(píng)論0 收藏0
  • SpringBoot進(jìn)階教程 | 第四篇:整合Mybatis實(shí)現(xiàn)多數(shù)據(jù)源

    這篇文章主要介紹,通過(guò)Spring Boot整合Mybatis后如何實(shí)現(xiàn)在一個(gè)工程中實(shí)現(xiàn)多數(shù)據(jù)源。同時(shí)可實(shí)現(xiàn)讀寫(xiě)分離。 準(zhǔn)備工作 環(huán)境: windows jdk 8 maven 3.0 IDEA 創(chuàng)建數(shù)據(jù)庫(kù)表 在mysql中創(chuàng)建student庫(kù)并執(zhí)行下面查詢(xún)創(chuàng)建student表 -- ---------------------------- -- Table structure for stud...

    AZmake 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<