摘要:配置想想,我們需要哪些數據庫要用到,數據庫連接池要用到橋接器要用到,因此要倉庫點我去倉庫中找到搜索這些加進去。
本文旨在用最通俗的語言講述最枯燥的基本知識
最近身邊的程序員掀起了學習springboot的熱潮,說什么學會了springboot在大街上就可以橫著走、什么有了springboot媽媽再也不擔心我的編程了、什么BAT都喜歡的框架...聽得作者那個心癢癢的,于是找了個時間,下載了個idea來玩一波springboot,對了...用springboot最好用idea,如果你還在用eclipse,刪了吧。
在這里解釋一下為什么是springboot+mybatis+druid,是因為作者認為但凡任何一個有靈魂的項目,都少不了數據庫,作者不喜歡用JPA那種混SQL的語法,因此選了mybatis,而Druid是阿里系(真香~)的一種數據庫連接池框架,在上一個項目作者用的屢試不爽,因此打算繼續(xù)用,為啥屢試不爽?看文末吧。
1. 創(chuàng)建springboot工程文章提綱:
創(chuàng)建springboot工程
配置pom.xml
配置數據源
設置mybatis
hello world
設置Druid監(jiān)控配置
只要你有idea,創(chuàng)建一個springboot工程,就跟捏死一個螞蟻一樣簡單,因為idea里深度集成了對springboot項目的支持,你直接不停的next到最后,它就會幫你創(chuàng)建出一個springboot工程。
首先打開idea->Create New project->選擇項目類型:這里選擇spring initializr,然后next。
創(chuàng)建項目,填寫項目名稱,注意:不要能駝峰寫法,可以用中橫線,填寫完畢后繼續(xù)next。
選擇依賴,所謂依賴就是你在設計這個項目的框架時,分析這個項目需要用到哪些jar或者組件,比如緩存要用到Redis,數據庫要用到MySQL等...這里因為演示項目,就不選擇太多其它亂七八糟的依賴了。
選好依賴之后,又是一路狂點next,直到最后finish一下,一個springboot項目就創(chuàng)建好了。
2. 配置pom.xml想想,我們需要哪些jar?
數據庫要用到mybatis,數據庫連接池要用到Druid、MySQL橋接器要用到mysql-connector,因此要maven倉庫(點我去倉庫)中找到搜索這些pom加進去。注意,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中
細心的老鐵會發(fā)現,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
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
繼續(xù)在application.yml中設置mybatis,mybatis的配置也簡單,
主要是為了設置mybatis的配置文件已經mapper文件所在。
首先在resource目錄下創(chuàng)建一個mybatis-config.xml文件,文件內容為:
在main包中的根目錄下創(chuàng)建一個存放mapper實體的資源文件,在resource文件下創(chuàng)建一個文件夾mapper用來存放mapper的xml文件。
配置好資源文件路徑之后,就可以在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的內容如下圖:
此時需要有一個數據庫表來做測試,我們在數據庫創(chuàng)建一個表,并且插入一條數據:
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 { /** * 根據ID獲取記錄 * @param id * @return */ public Map findObjectById(Integer id); }
在resource中的mapper文件夾創(chuàng)建memberMapper.xml,并且在mapper中增加一個findObjectById的SQL查詢語句。
5. hello world#根據ID查詢記錄
走到這一步,基本上已經是大功告成了,我們來寫一個測試類試試,在根目錄創(chuàng)建一個controller的包,在包中創(chuàng)建一個Java類,如下:
@Controller @RequestMapping("/test") public class TestController { @Resource private MemeberMapper memeberMapper=null; @RequestMapping("/one") @ResponseBody public Map testdb(){ return memeberMapper.findObjectById(1); } }
創(chuàng)建完之后,我們運行項目,找到啟動類MybatisAndDruidApplication右鍵run,發(fā)現報錯,提示沒有掃描到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呢?
設置Druid監(jiān)控配置
druid的使用需要做一些配置,現在我們來在根目錄下創(chuàng)建一個包config,在config包中間創(chuàng)建一個叫做DruidConfig.java,并且在里寫入下面的內容:
@Configuration public class DruidConfig { @Bean public ServletRegistrationBean druidServlet() { // 主要實現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"); // 是否可以重置數據源 return servletRegistrationBean ; } @Bean public 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(); } }
配置中的內容就不一一細講, 有興趣的直接百度一下druid就出來很多答案了,現在重新運行一下項目,運行成功之后,在瀏覽器中輸入:http://localhost:8888/druid
這時候,druid監(jiān)控平臺就出現了
此時我們輸入在DruidConfig中設置的loginUsername和loginPassword點擊登錄,一個完整的druid監(jiān)控管理平臺就呈現在我們啦~
Druid非常強大,在這里你可以查看SQL的執(zhí)行情況、慢SQL、API請求情況等,根據這些可以做一些性能的調優(yōu),至于詳細的用法,就靠大家自行學習啦~
如果有老鐵需要項目源碼,請加我微信:sisi-ceo。
覺得本文對你有幫助?請分享給更多人
關注「編程無界」,提升裝逼技能
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71972.html
摘要:當禁用時,所有關聯對象都會即時加載。不同的驅動在這方便表現不同。參考驅動文檔或充分測試兩種方法來決定所使用的驅動。需要適合的驅動。系統默認值是設置字段和類是否支持駝峰命名的屬性。 ??上篇文章我們介紹了SpringBoot和MyBatis的整合,可以說非常簡單快捷的就搭建了一個web項目,但是在一個真正的企業(yè)級項目中,可能我們還需要更多的更加完善的框架才能開始真正的開發(fā),比如連接池、分...
摘要:申請連接時執(zhí)行檢測連接是否有效,做了這個配置會降低性能。作者在版本中使用,通過監(jiān)控界面發(fā)現有緩存命中率記錄,該應該是支持。允許和不允許單條語句返回多個數據集取決于驅動需求使用列標簽代替列名稱。需要驅動器支持。將自動映射所有復雜的結果。 項目github地址:https://github.com/5-Ason/aso... 具體可看 ./db/db-mysql 模塊 本文主要實現的是對...
這篇文章主要介紹,通過Spring Boot整合Mybatis后如何實現在一個工程中實現多數據源。同時可實現讀寫分離。 準備工作 環(huán)境: windows jdk 8 maven 3.0 IDEA 創(chuàng)建數據庫表 在mysql中創(chuàng)建student庫并執(zhí)行下面查詢創(chuàng)建student表 -- ---------------------------- -- Table structure for stud...
閱讀 3538·2023-04-26 00:16
閱讀 1365·2021-11-25 09:43
閱讀 3829·2021-11-23 09:51
閱讀 2970·2021-09-24 09:55
閱讀 718·2021-09-22 15:45
閱讀 1394·2021-07-30 15:30
閱讀 3067·2019-08-30 14:04
閱讀 2247·2019-08-26 13:46