本文旨在用最通俗的語(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ù)用,為啥屢試不爽?看文末吧。
文章提綱:
創(chuàng)建springboot工程
配置pom.xml
配置數(shù)據(jù)源
設(shè)置mybatis
hello world
設(shè)置Druid監(jiān)控配置
只要你有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)目名稱,注意:不要能駝峰寫(xiě)法,可以用中橫線,填寫(xiě)完畢后繼續(xù)next。
選擇依賴,所謂依賴就是你在設(shè)計(jì)這個(gè)項(xiàng)目的框架時(shí),分析這個(gè)項(xiàng)目需要用到哪些jar或者組件,比如緩存要用到redis,數(shù)據(jù)庫(kù)要用到MySQL等…這里因?yàn)檠菔卷?xiàng)目,就不選擇太多其它亂七八糟的依賴了。
選好依賴之后,又是一路狂點(diǎn)next,直到最后finish一下,一個(gè)springboot項(xiàng)目就創(chuàng)建好了。
想想,我們需要哪些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中
Reimport過(guò)程中再idea底部會(huì)有進(jìn)度條顯示,等進(jìn)度條消失,在觀察pom.xml,紅色已經(jīng)消失,說(shuō)明依賴已經(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ě)了注釋,因此讀者可以直接復(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í)間
繼續(xù)在application.yml中設(shè)置mybatis,mybatis的配置也簡(jiǎn)單,
主要是為了設(shè)置mybatis的配置文件已經(jīng)mapper文件所在。
首先在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
>
在main包中的根目錄下創(chuàng)建一個(gè)存放mapper實(shí)體的資源文件,在resource文件下創(chuàng)建一個(gè)文件夾mapper用來(lái)存放mapper的xml文件。
配置好資源文件路徑之后,就可以在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)容如下圖:
此時(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")
在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
}
在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
>
走到這一步,基本上已經(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呢?
設(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)在我們啦~
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ú)界」,提升裝逼技能
當(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)