Spring Boot 與MyBatis集成
在我們?nèi)粘5拈_發(fā)過程中,肯定不可避免的會使用到數(shù)據(jù)庫以及 SQL 語句。比如,剛開始學(xué)習(xí) Java 的時候可能會遇到 JDBC,它是連接 Java 和數(shù)據(jù)庫的橋梁,我們可以使用 JDBC 來建立與數(shù)據(jù)庫之間的連接并且執(zhí)行相應(yīng)的 SQL 語句。雖然 JDBC 的執(zhí)行效率很高,但是其開發(fā)效率比較低。正是如此,市面上出現(xiàn)了一大批 ORM(對象關(guān)系映射)框架,例如 Hibernate,iBATIS 以及本文將要介紹的 MyBatis。
MyBatis 簡介
MyBatis 是一款優(yōu)秀的持久層框架,它支持定制化 SQL、存儲過程以及高級映射。它避免了幾乎所有的 JDBC 代碼和手動設(shè)置參數(shù)以及獲取結(jié)果集。因為 MyBatis 可以使用簡單的 XML 或注解來配置和映射原生信息,將接口和 Java 的 POJOs (Plain Old Java Objects,普通的 Java 對象)映射成數(shù)據(jù)庫中的記錄。
通俗地說,MyBatis 就是我們使用 Java 程序操作數(shù)據(jù)庫時的一種工具,可以簡化我們使用 JDBC 時的很多操作,而且還簡化了數(shù)據(jù)庫記錄與 POJO 之間的映射方式。
為什么要使用 MyBatis
前文提到過,目前市面上 有很多的 ORM 框架,例如 Hibernate,iBATIS 以及 Spring 全家桶的 Spring Data JPA。那么我們?yōu)槭裁匆褂?MyBatis 呢?因為使用 MyBatis 有以下優(yōu)勢:
- 可以簡化我們操作數(shù)據(jù)庫的步驟。
- 相對 Hibernate 來說學(xué)習(xí)成本較低,Hibernate 還需要學(xué)習(xí)其 HQL 查詢規(guī)范。
- 使用相對廣泛。
前提條件
本文將使用開源的數(shù)據(jù)庫連接池 DBCP(DataBase Connection Pool)連接 MySQL 數(shù)據(jù)庫,并在此基礎(chǔ)上整合 MyBatis 以及 MyBatis Plus,進(jìn)而講解如何使用 MyBatis 和 MyBatis Plus 操作數(shù)據(jù)庫。所以在開始本教程的閱讀之前,需要如下準(zhǔn)備:
1. 一個 Spring Boot 的 Web 項目,你可以通過 Spring Initializr 頁面 生成一個空的 Spring Boot 項目,當(dāng)然也可以下載 springboot-pom.xml 文件 ,然后使用 Maven 構(gòu)建一個 Spring Boot 項目。
2. 安裝 MySQL 數(shù)據(jù)庫或者一臺 MySQL 服務(wù)器。
使用 DBCP 連接池
DBCP 數(shù)據(jù)庫連接池是 Apache 上的一個 Java 連接池項目,也是 Tomcat 使用的連接池組件。由于建立數(shù)據(jù)庫連接是一種非常耗時、耗資源的行為,所以通過連接池預(yù)先同數(shù)據(jù)庫建立一些連接,放在內(nèi)存中,應(yīng)用程序需要建立數(shù)據(jù)庫連接時直接到連接池中申請一個就行,使用完畢后再歸還到連接池中。
添加相關(guān)依賴
這一步很簡單,只需要在 pom.xml 中添加清單 1 的內(nèi)容即可。
1. 添加相關(guān)依賴
<!--連接驅(qū)動-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.5.0</version>
< /dependency>
配置數(shù)據(jù)源
添加好依賴后,我們需要做的就是配置我們的數(shù)據(jù)源。首先我們需要在配置文件中添加數(shù)據(jù)源相關(guān)的配置項的值,下面清單代碼只給出了部分項,完整內(nèi)容可以查看 本文源碼 :
2. 數(shù)據(jù)源配置文件配置項
# 基本屬性
spring:
datasource:
dbcp2:
url: jdbc:mysql://localhost:3306/spring_tutorial?serverTimezone=GMT%2B8amp;characterEncoding=utf-8
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
添加好配置項后,我們在 cn.itweknow.sb-mybatis.config 包下新建了 DataSourceConfiguration 類,它是數(shù)據(jù)源的配置類,其內(nèi)容如下,可以看到在這個類里面我們配置了數(shù)據(jù)源。
3. 數(shù)據(jù)源配置
@Configuration
@ConditionalOnProperty(name = "spring.datasource.dbcp2.url", matchIfMissing = false)
@MapperScan(value = { "cn.itweknow.sbmybatis.mapper" }, sqlSessionFactoryRef = "sqlSessionFactory")
public class DataSourceConfiguration {
@Bean(name = "dataSource")
@ConfigurationProperties(prefix = "spring.datasource.dbcp2")
public DataSource dataSource() {
return new BasicDataSource();
}
}
到這一步,如果我們能夠正常啟動項目就意味著我們的連接池配置成功了。
集成 MyBatis
下面我們來了解如何在 Spring Boot 項目中配置 MyBatis。只需要三大步驟就可以完成這個配置。第一步是添加依賴包,第二步是配置數(shù)據(jù)庫事務(wù)和會話工廠,最后一步就是配置 Mapper 的路徑。文章來源:http://www.zghlxwxcb.cn/news/detail-824358.html
添加 MyBatis 相關(guān)依賴包
我們只需要在 pom.xml 文件的 標(biāo)簽下添加如下內(nèi)容即可。文章來源地址http://www.zghlxwxcb.cn/news/detail-824358.html
清單 4. 添加 MyBatis 依賴包
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId
到了這里,關(guān)于7. Spring Boot 與MyBatis集成的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!