SpringBoot+MyBatis(一)

前面幾篇文章簡(jiǎn)單介紹了MyBatis的配置和使用,今天我們來(lái)在SpringBoot中整合MyBatis做一個(gè)簡(jiǎn)單的小demo.關(guān)于MyBatis的基礎(chǔ)使用,請(qǐng)參考下列文章:
MyBatis(一)單表操作
MyBatis(二)多表關(guān)聯(lián)
MyBatis(三)動(dòng)態(tài)SQL

好,下面正式開始,這里使用的開發(fā)工具還是IDEA, 數(shù)據(jù)庫(kù)和表沿用上面三篇文章中的Article,Author和Comment表。
1.新建一個(gè)SpringBoot工程,工程中包含MyBatis, MySql和Web三個(gè)模塊。

屏幕快照 2017-04-11 上午9.38.16.png
屏幕快照 2017-04-11 上午9.38.48.png
屏幕快照 2017-04-11 上午9.39.12.png
屏幕快照 2017-04-11 上午9.39.21.png
屏幕快照 2017-04-11 上午9.40.27.png
工程目錄

2.按照標(biāo)準(zhǔn)的普通的web工程結(jié)構(gòu)劃分,本工程包含controller, dao, domain, service幾個(gè)層。簡(jiǎn)單說(shuō)明一下幾個(gè)包和文件的用途:
dao層:用來(lái)存放MyBatis Mapper映射接口類。
DemoApplication:這個(gè)是SpringBoot工程的入口文件,像本例中配置Mapper映射類掃描路徑就是在這里配置的。
ArticleMapper.xml:這個(gè)是SQL配置文件,關(guān)于MyBatis的sql寫法有兩種,一種是用xml配置,另一種就是使用注解。個(gè)人傾向于xml配置,一方面可以集中管理,另一方面,使用注解沒(méi)有xml配置來(lái)的靈活。
application.properties:SpringBoot工程的配置文件,數(shù)據(jù)源和MyBatis的一些配置都寫在這個(gè)文件中。說(shuō)到配置文件,我們也可以新建,比如開發(fā)環(huán)境一個(gè).properties文件,正式環(huán)境一個(gè).properties文件,然后在applaction.properties中進(jìn)行切換。

3.好了,現(xiàn)在,我們來(lái)看一下每個(gè)文件中的內(nèi)容:
先說(shuō)application.properties:

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=123456

##格式化json輸出
spring.jackson.serialization.indent-output=true

##實(shí)體類包路徑,該路徑下的實(shí)體類在Mapper文件中可直接使用類名,不需要再寫完整的類路徑。
mybatis.type-aliases-package=com.archer.example.domain
mybatis.mapper-locations=classpath:mapper/*.xml

spring.datasource那幾行用來(lái)配置數(shù)據(jù)源,包括驅(qū)動(dòng),路徑,用戶名和密碼等。
spring.jackson.serialization.indent-output用來(lái)格式化json輸出,自己可以體會(huì)下不設(shè)置會(huì)怎樣。
最后兩個(gè)用來(lái)設(shè)置mybatis的實(shí)體類路徑和mapper文件的路徑。
mapper/*.xml表示mapper文件下所有的xml文件。

ArticleDao:

@Repository
public interface ArticleDao {
    Article findArticleTitleLike(@Param("title") String title);
}

findArticleTitleLike對(duì)應(yīng)ArticleMapper.xml中select元素的id.
這里的@Param("title")用來(lái)指定Mapper XML文件中sql 語(yǔ)句參數(shù)的名字。當(dāng)然你也可以這么寫:

Article findArticleTitleLike(Map<String, Object> paramMap);

然后在paramMap中指定一個(gè)key為"title"的鍵值對(duì)參數(shù)。

DemoApplication:

@SpringBootApplication

//Mapper接口類掃描設(shè)置
@MapperScan("com.archer.example.dao")
public class DemoApplication {

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

這里我們需要配置Mapper映射接口類的掃描路徑
@MapperScan("com.archer.example.dao")用來(lái)指定哪個(gè)路徑下放置的是Mapper映射接口類。SpringBoot會(huì)根據(jù)這個(gè)目錄下面的類動(dòng)態(tài)生成一個(gè)對(duì)應(yīng)的接口實(shí)現(xiàn)類。

其他的文件不再介紹,ArticleMapper.xml中不明白的可以參考文章開頭的三篇文章。

打開瀏覽器,輸入
http://localhost:8080/api/getArticle?articleTitle=文章名稱

屏幕快照 2017-04-11 下午2.14.12.png

最終demo

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容