日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

单手撸了个springboot+mybatis+druid

發(fā)布時間:2023/12/20 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单手撸了个springboot+mybatis+druid 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
本文旨在用最通俗的語言講述最枯燥的基本知識

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

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

文章提綱:

  • 創(chuàng)建springboot工程
  • 配置pom.xml
  • 配置數(shù)據(jù)源
  • 設(shè)置mybatis
  • hello world
  • 設(shè)置Druid監(jiān)控配置
  • 1. 創(chuàng)建springboot工程

    只要你有idea,創(chuàng)建一個springboot工程,就跟捏死一個螞蟻一樣簡單,因為idea里深度集成了對springboot項目的支持,你直接不停的next到最后,它就會幫你創(chuàng)建出一個springboot工程。

  • 首先打開idea->Create New project->選擇項目類型:這里選擇spring initializr,然后next。
  • 創(chuàng)建項目,填寫項目名稱,注意:不要能駝峰寫法,可以用中橫線,填寫完畢后繼續(xù)next。
  • 選擇依賴,所謂依賴就是你在設(shè)計這個項目的框架時,分析這個項目需要用到哪些jar或者組件,比如緩存要用到Redis,數(shù)據(jù)庫要用到MySQL等...這里因為演示項目,就不選擇太多其它亂七八糟的依賴了。
  • 選好依賴之后,又是一路狂點next,直到最后finish一下,一個springboot項目就創(chuàng)建好了。
  • 2. 配置pom.xml

    想想,我們需要哪些jar?
    數(shù)據(jù)庫要用到mybatis,數(shù)據(jù)庫連接池要用到Druid、MySQL橋接器要用到mysql-connector,因此要maven倉庫(點我去倉庫)中找到搜索這些pom加進去。注意,mybatis要用mybatis-spring-boot-starter。

    <!-- 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中

    細心的老鐵會發(fā)現(xiàn),MySQL的version里的內(nèi)容是紅色的,這是什么原因呢?
    這是因為我們引入pom時,這些版本的jar在本地maven倉庫還沒有,而Druid的pom里的version沒有顯示紅色,是因為之前的項目用到了這個版本的Druid,已經(jīng)被下載到本地Maven倉庫里了。
    因此我們需要把本地沒有的jar下載到本地倉庫,右鍵pom.xml彈出菜單,選擇Maven,彈出菜單選擇reimport

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

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

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

    4. 設(shè)置mybatis

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

  • 首先在resource目錄下創(chuàng)建一個mybatis-config.xml文件,文件內(nèi)容為:
  • <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration><mappers></mappers> </configuration>
  • 在main包中的根目錄下創(chuàng)建一個存放mapper實體的資源文件,在resource文件下創(chuàng)建一個文件夾mapper用來存放mapper的xml文件。
  • 配置好資源文件路徑之后,就可以在application.yml中加入mybatis的配置了,如下是一個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 # 定義所有操作類的別名所在包 debug: true

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

  • 此時需要有一個數(shù)據(jù)庫表來做測試,我們在數(shù)據(jù)庫創(chuàng)建一個表,并且插入一條數(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中增加一個findObjectById的SQL查詢語句。
  • <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--映射文件配置,namespace指向接口--> <mapper namespace="com.example.mybatisanddruid.mapper.MemeberMapper"> #根據(jù)ID查詢記錄 <select id="findObjectById" parameterType="Integer" resultType="Map">select * from memeber where id = #{value}</select> </mapper>

    5. hello world

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

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

    創(chuàng)建完之后,我們運行項目,找到啟動類MybatisAndDruidApplication右鍵run,發(fā)現(xiàn)報錯,提示沒有掃描到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已經(jīng)搭建成功,此時有人會問,那Druid呢?

  • 設(shè)置Druid監(jiān)控配置
  • druid的使用需要做一些配置,現(xiàn)在我們來在根目錄下創(chuàng)建一個包config,在config包中間創(chuàng)建一個叫做DruidConfig.java,并且在里寫入下面的內(nèi)容:

    @Configuration public class DruidConfig {@Beanpublic ServletRegistrationBean druidServlet() { // 主要實現(xiàn)WEB監(jiān)控的配置處理ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*"); // 進行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"); // 用戶名servletRegistrationBean.addInitParameter("loginPassword", "Wkt_sTat_1031"); // 密碼servletRegistrationBean.addInitParameter("resetEnable", "false"); // 是否可以重置數(shù)據(jù)源return servletRegistrationBean ;}@Beanpublic FilterRegistrationBean filterRegistrationBean() {FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean() ;filterRegistrationBean.setFilter(new WebStatFilter());filterRegistrationBean.addUrlPatterns("/*"); // 所有請求進行監(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)容就不一一細講, 有興趣的直接百度一下druid就出來很多答案了,現(xiàn)在重新運行一下項目,運行成功之后,在瀏覽器中輸入:http://localhost:8888/druid
    這時候,druid監(jiān)控平臺就出現(xiàn)了

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

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

    如果有老鐵需要項目源碼,請加我微信:sisi-ceo。


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

    總結(jié)

    以上是生活随笔為你收集整理的单手撸了个springboot+mybatis+druid的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。