天天看點

Spring Boot 整合 Mybatis Annotation 注解的完整 Web 案例

摘要: 原創出處 www.bysocket.com 「泥瓦匠bysocket 」歡迎轉載,保留摘要,謝謝!

『 公司需要人、産品、業務和方向,方向又要人、産品、業務和方向,方向… 循環』

本文提綱

一、前言

二、運作 springboot-mybatis-annotation 工程

三、springboot-mybatis-annotation 工程配置詳解

四、小結

運作環境:jdk 7 或 8、maven 3.0+

技術棧:springboot 1.5+、springboot mybatis starter 1.2+ 、mybatis 3.4+

距離第一篇 spring boot 系列的博文 3 個月了。《springboot 整合 mybatis 的完整 web 案例》第一篇出來是 xml 配置 sql 的形式。雖然 xml 形式是我比較推薦的,但是注解形式也是友善的。尤其一些小系統,快速的 crud 輕量級的系統。

這裡感謝曉春 http://xchunzhao.tk/ 的 pull request,提供了 springboot-mybatis-annotation 的實作。

然後application 應用啟動類的 main 函數,然後在浏覽器通路:

1

<code>http:</code><code>//localhost:8080/api/city?cityname=溫嶺市</code>

可以看到傳回的 json 結果:

2

3

4

5

6

<code>{</code>

<code>"id"</code><code>: 1,</code>

<code>"provinceid"</code><code>: 1,</code>

<code>"cityname"</code><code>:</code><code>"溫嶺市"</code><code>,</code>

<code>"description"</code><code>:</code><code>"我的家在溫嶺。"</code>

<code>}</code>

1.pom 添加 mybatis 依賴

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

60

61

62

63

64

<code>&lt;?</code><code>xml</code> <code>version</code><code>=</code><code>"1.0"</code> <code>encoding</code><code>=</code><code>"utf-8"</code><code>?&gt;</code>

<code>&lt;</code><code>project</code> <code>xmlns</code><code>=</code><code>"http://maven.apache.org/pom/4.0.0"</code> <code>xmlns:xsi</code><code>=</code><code>"http://www.w3.org/2001/xmlschema-instance"</code>

<code>    </code><code>xsi:schemalocation</code><code>=</code><code>"http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>modelversion</code><code>&gt;4.0.0&lt;/</code><code>modelversion</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>groupid</code><code>&gt;springboot&lt;/</code><code>groupid</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>artifactid</code><code>&gt;springboot-mybatis-annotation&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>version</code><code>&gt;0.0.1-snapshot&lt;/</code><code>version</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>packaging</code><code>&gt;jar&lt;/</code><code>packaging</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>name</code><code>&gt;springboot-mybatis-annotation&lt;/</code><code>name</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>description</code><code>&gt;springboot-mybatis :: 整合mybatis annotation demo&lt;/</code><code>description</code><code>&gt;</code>

<code>    </code><code>&lt;!-- spring boot 啟動父依賴 --&gt;</code>

<code>    </code><code>&lt;</code><code>parent</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>groupid</code><code>&gt;org.springframework.boot&lt;/</code><code>groupid</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>artifactid</code><code>&gt;spring-boot-starter-parent&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>version</code><code>&gt;1.5.1.release&lt;/</code><code>version</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>parent</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>properties</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>mybatis-spring-boot</code><code>&gt;1.2.0&lt;/</code><code>mybatis-spring-boot</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>mysql-connector</code><code>&gt;5.1.39&lt;/</code><code>mysql-connector</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>properties</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>dependencies</code><code>&gt;</code>

<code>        </code><code>&lt;!-- spring boot web 依賴 --&gt;</code>

<code>        </code><code>&lt;</code><code>dependency</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>groupid</code><code>&gt;org.springframework.boot&lt;/</code><code>groupid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>artifactid</code><code>&gt;spring-boot-starter-web&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>        </code><code>&lt;/</code><code>dependency</code><code>&gt;</code>

<code>        </code><code>&lt;!-- spring boot test 依賴 --&gt;</code>

<code>            </code><code>&lt;</code><code>artifactid</code><code>&gt;spring-boot-starter-test&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>scope</code><code>&gt;test&lt;/</code><code>scope</code><code>&gt;</code>

<code>        </code><code>&lt;!-- spring boot mybatis 依賴 --&gt;</code>

<code>            </code><code>&lt;</code><code>groupid</code><code>&gt;org.mybatis.spring.boot&lt;/</code><code>groupid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>artifactid</code><code>&gt;mybatis-spring-boot-starter&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>version</code><code>&gt;${mybatis-spring-boot}&lt;/</code><code>version</code><code>&gt;</code>

<code>        </code><code>&lt;!-- mysql 連接配接驅動依賴 --&gt;</code>

<code>            </code><code>&lt;</code><code>groupid</code><code>&gt;mysql&lt;/</code><code>groupid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>artifactid</code><code>&gt;mysql-connector-java&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>version</code><code>&gt;${mysql-connector}&lt;/</code><code>version</code><code>&gt;</code>

<code>        </code><code>&lt;!-- junit --&gt;</code>

<code>            </code><code>&lt;</code><code>groupid</code><code>&gt;junit&lt;/</code><code>groupid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>artifactid</code><code>&gt;junit&lt;/</code><code>artifactid</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>version</code><code>&gt;4.12&lt;/</code><code>version</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>dependencies</code><code>&gt;</code>

<code>&lt;/</code><code>project</code><code>&gt;</code>

2.在 citydao 城市資料操作層接口類添加注解 @mapper、@select 和 @results

<code>/**</code>

<code>* 城市 dao 接口類</code>

<code>*</code>

<code>* created by xchunzhao on 02/05/2017.</code>

<code>*/</code>

<code>@mapper</code> <code>// 标志為 mybatis 的 mapper</code>

<code>public</code> <code>interface</code> <code>citydao {</code>

<code>* 根據城市名稱,查詢城市資訊</code>

<code>* @param cityname 城市名</code>

<code>@select</code><code>(</code><code>"select * from city"</code><code>)</code>

<code>// 傳回 map 結果集</code>

<code>@results</code><code>({</code>

<code>@result</code><code>(property =</code><code>"id"</code><code>, column =</code><code>"id"</code><code>),</code>

<code>@result</code><code>(property =</code><code>"provinceid"</code><code>, column =</code><code>"province_id"</code><code>),</code>

<code>@result</code><code>(property =</code><code>"cityname"</code><code>, column =</code><code>"city_name"</code><code>),</code>

<code>@result</code><code>(property =</code><code>"description"</code><code>, column =</code><code>"description"</code><code>),</code>

<code>})</code>

<code>city findbyname(</code><code>@param</code><code>(</code><code>"cityname"</code><code>) string cityname);</code>

@mapper 标志接口為 mybatis mapper 接口

@select 是 select 操作語句

@results 标志結果集,以及與庫表字段的映射關系

其他的注解可以看 org.apache.ibatis.annotations 包提供的,如圖:

Spring Boot 整合 Mybatis Annotation 注解的完整 Web 案例

注解不涉及到配置,更近貼近 0 配置。再次感謝曉春 http://xchunzhao.tk/ 的 pull request~

歡迎掃一掃我的公衆号關注 — 及時得到部落格訂閱哦!

— http://www.bysocket.com/ —

— https://github.com/jeffli1993 —

Spring Boot 整合 Mybatis Annotation 注解的完整 Web 案例