Springboot 整合 Mybatis 的完整 Web 案例
摘要: 原創出處:www.bysocket.com 泥瓦匠BYSocket 希望轉載,保留摘要,謝謝! 推薦一本書《騰訊傳》。 新年第一篇 Springboot 技術文誕生。泥瓦匠準備寫寫 Springboot 相關最佳實踐。一方面總結下一些 Springboot 相關,一方面和大家交流交流 Springboot 框架。 現在業界網際網路流行的資料操作層框架 Mybatis,下面詳解下 Springboot 如何整合 Mybatis ,這邊沒有使用 Mybatis Annotation 這種,是使用 xml 配置 SQL。因為我覺得 SQL 和業務程式碼應該隔離,方便和 DBA 校對 SQL。二者 XML 對較長的 SQL 比較清晰。 一、執行 springboot-mybatis 工程
git clone 下載工程 springboot-learning-example ,專案地址見 GitHub。下面開始執行工程步驟(Quick Start):
1.資料庫準備
a.建立資料庫 springbootdb:
1
CREATE DATABASE springbootdb;
b.建立表 city :(因為我喜歡徒步)
1
2
3
4
5
6
7
8
DROP TABLE IF EXISTS city
;
CREATE TABLE city
(
id
int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '城市編號',
province_id
int(10) unsigned NOT NULL COMMENT '省份編號',
city_name
varchar(25) DEFAULT NULL COMMENT '城市名稱',
description
varchar(25) DEFAULT NULL COMMENT '描述',
PRIMARY KEY (id
)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
c.插入資料
1
INSERT city VALUES (1 ,1,'溫嶺市','BYSocket 的家在溫嶺。');
2. 專案結構介紹
專案結構如下圖所示:
org.spring.springboot.controller – Controller 層
org.spring.springboot.dao – 資料操作層 DAO
org.spring.springboot.domain – 實體類
org.spring.springboot.service – 業務邏輯層
Application – 應用啟動類
application.properties – 應用配置檔案,應用啟動會自動讀取配置
3.改資料庫配置
開啟 application.properties 檔案, 修改相應的資料來源配置,比如資料來源地址、賬號、密碼等。(如果不是用 MySQL,自行新增連線驅動 pom,然後修改驅動名配置。)
4.編譯工程
在專案根目錄 springboot-learning-example,執行 maven 指令:
1
mvn clean install
5.執行工程
右鍵執行 Application 應用啟動類的 main 函式,然後在瀏覽器訪問:
1 http://localhost:8080/api/city?cityName=溫嶺市 可以看到返回的 JSON 結果: 1 2 3 4 5 6 { "id": 1, "provinceId": 1, "cityName": "溫嶺市", "description": "我的家在溫嶺。" } 如圖:
二、springboot-mybatis 工程配置詳解
1.pom 新增 Mybatis 依賴 1 2 3 4 5 6 org.mybatis.spring.boot mybatis-spring-boot-starter ${mybatis-spring-boot} mybatis-spring-boot-starter 工程依賴如圖:
2.在 application.properties 應用配置檔案,增加 Mybatis 相關配置 1 2 3
Mybatis 配置
mybatis.typeAliasesPackage=org.spring.springboot.domain mybatis.mapperLocations=classpath:mapper/.xml mybatis.typeAliasesPackage 配置為 org.spring.springboot.domain,指向實體類包路徑。mybatis.mapperLocations 配置為 classpath 路徑下 mapper 包下, 代表會掃描所有 xml 檔案。 mybatis 其他配置相關詳解如下: mybatis.config = mybatis 配置檔名稱 mybatis.mapperLocations = mapper xml 檔案地址 mybatis.typeAliasesPackage = 實體類包路徑 mybatis.typeHandlersPackage = type handlers 處理器包路徑 mybatis.check-config-location = 檢查 mybatis 配置是否存在,一般命名為 mybatis-config.xml mybatis.executorType = 執行模式。預設是 SIMPLE 3.在 Application 應用啟動類新增註解 MapperScan Application.java 程式碼如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 /** * Spring Boot 應用啟動類 * * Created by bysocket on 16/4/26. */ // Spring Boot 應用的標識 @SpringBootApplication // mapper 介面類掃描包配置 @MapperScan("org.spring.springboot.dao") public class Application {
public static void main(String[] args) {
// 程式啟動入口
// 啟動嵌入式的 Tomcat 並初始化 Spring 環境及其各 Spring 元件
SpringApplication.run(Application.class,args);
}
} mapper 介面類掃描包配置註解 MapperScan :用這個註解可以註冊 Mybatis mapper 介面類。 4.新增相應的 City domain類、CityDao mapper介面類 City.java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 /** * 城市實體類 * * Created by bysocket on 07/02/2017. */ public class City {
/**
* 城市編號
*/
private Long id;
/**
* 省份編號
*/
private Long provinceId;
/**
* 城市名稱
*/
private String cityName;
/**
* 描述
*/
private String description;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getProvinceId() {
return provinceId;
}
public void setProvinceId(Long provinceId) {
this.provinceId = provinceId;
}
public String getCityName() {
return cityName;
}
public void setCityName(String cityName) {
this.cityName = cityName;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
} CityDao.java: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 /** * 城市 DAO 介面類 * * Created by bysocket on 07/02/2017. */ public interface CityDao {
/**
* 根據城市名稱,查詢城市資訊
*
* @param cityName 城市名
*/
City findByName(@Param("cityName") String cityName);
} 其他不明白的,可以 git clone 下載工程 springboot-learning-example ,工程程式碼註解很詳細。 https://github.com/JeffLi1993/springboot-learning-example。 三、其他
利用 Mybatis-generator自動生成程式碼 http://www.cnblogs.com/yjmyzz/p/4210554.html Mybatis 通用 Mapper3 https://github.com/abel533/Mapper Mybatis 分頁外掛 PageHelper https://github.com/pagehelper/Mybatis-PageHelper 最後,推薦閱讀:《 Spring Boot 之 HelloWorld 詳解》 歡迎掃一掃我的公眾號關注 — 及時得到部落格訂閱哦! — http://www.bysocket.com/ — — https://github.com/JeffLi1993 —
相關文章
- springBoot 整合 mybatisSpring BootMyBatis
- Springboot整合MybatisSpring BootMyBatis
- springboot+mybatis整合Spring BootMyBatis
- SpringBoot | 3.2 整合MyBatisSpring BootMyBatis
- Springboot+mybatis 整合Spring BootMyBatis
- SpringBoot整合系列–整合MyBatis-plusSpring BootMyBatis
- springBoot 整合 mybatis+OracleSpring BootMyBatisOracle
- SpringBoot整合Mybatis-PlusSpring BootMyBatis
- springboot專案整合mybatisSpring BootMyBatis
- springboot-整合mybatis,securitySpring BootMyBatis
- Mybatis 的使用(整合Spring、SpringBoot)MyBatisSpring Boot
- SpringBoot學習之整合MybatisSpring BootMyBatis
- SpringBoot 實戰 (九) | 整合 MybatisSpring BootMyBatis
- SpringBoot 2.1.1.RELEASE 整合MyBatisSpring BootMyBatis
- springboot整合mybatis及其反向工程Spring BootMyBatis
- SpringBoot | 3.3 整合MyBatis-PlusSpring BootMyBatis
- SpringBoot整合Mybatis+DruidSpring BootMyBatisUI
- SpringBoot--整合Mybatis和RedisSpring BootMyBatisRedis
- 最簡單的SpringBoot整合MyBatis教程Spring BootMyBatis
- web專案ant打包完整案例Web
- 企業 SpringBoot 教程(六)springboot整合mybatisSpring BootMyBatis
- SpringBoot整合Mybatis-Plus(SpringBoot3)Spring BootMyBatis
- SpringBoot第五篇:整合MybatisSpring BootMyBatis
- SpringBoot、MyBatis、Shiro、Thymeleaf整合思路Spring BootMyBatis
- SpringBoot整合Mybatis超詳細流程Spring BootMyBatis
- springboot整合mybatis自動生成框架Spring BootMyBatis框架
- 【springboot】學習4:整合JDBC、整合druid、整合mybatis、整合 SpringSecuritySpring BootJDBCUIMyBatisGse
- springboot整合mybatis增刪改查(三):mybatis逆向工程Spring BootMyBatis
- SpringBoot整合Web資源Spring BootWeb
- SpringBoot資料訪問(一) SpringBoot整合MybatisSpring BootMyBatis
- 10.Mybatis在springboot中的整合總結MyBatisSpring Boot
- SpringBoot + Mybatis + Redis 整合入門專案Spring BootMyBatisRedis
- SpringBoot系列——MyBatis-Plus整合封裝Spring BootMyBatis封裝
- SpringBoot 整合Mybatis + PageHelper 實現分頁Spring BootMyBatis
- SpringBoot 實戰 (十三) | 整合 MyBatis (XML 版)Spring BootMyBatisXML
- Springboot整合mybatis框架(含例項Demo)Spring BootMyBatis框架
- SpringBoot整合Mybatis多資料來源Spring BootMyBatis
- springBoot-web 學習案例Spring BootWeb