摘要: 原創出處 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><?</code><code>xml</code> <code>version</code><code>=</code><code>"1.0"</code> <code>encoding</code><code>=</code><code>"utf-8"</code><code>?></code>
<code><</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>></code>
<code> </code><code><</code><code>modelversion</code><code>>4.0.0</</code><code>modelversion</code><code>></code>
<code> </code><code><</code><code>groupid</code><code>>springboot</</code><code>groupid</code><code>></code>
<code> </code><code><</code><code>artifactid</code><code>>springboot-mybatis-annotation</</code><code>artifactid</code><code>></code>
<code> </code><code><</code><code>version</code><code>>0.0.1-snapshot</</code><code>version</code><code>></code>
<code> </code><code><</code><code>packaging</code><code>>jar</</code><code>packaging</code><code>></code>
<code> </code><code><</code><code>name</code><code>>springboot-mybatis-annotation</</code><code>name</code><code>></code>
<code> </code><code><</code><code>description</code><code>>springboot-mybatis :: 整合mybatis annotation demo</</code><code>description</code><code>></code>
<code> </code><code><!-- spring boot 啟動父依賴 --></code>
<code> </code><code><</code><code>parent</code><code>></code>
<code> </code><code><</code><code>groupid</code><code>>org.springframework.boot</</code><code>groupid</code><code>></code>
<code> </code><code><</code><code>artifactid</code><code>>spring-boot-starter-parent</</code><code>artifactid</code><code>></code>
<code> </code><code><</code><code>version</code><code>>1.5.1.release</</code><code>version</code><code>></code>
<code> </code><code></</code><code>parent</code><code>></code>
<code> </code><code><</code><code>properties</code><code>></code>
<code> </code><code><</code><code>mybatis-spring-boot</code><code>>1.2.0</</code><code>mybatis-spring-boot</code><code>></code>
<code> </code><code><</code><code>mysql-connector</code><code>>5.1.39</</code><code>mysql-connector</code><code>></code>
<code> </code><code></</code><code>properties</code><code>></code>
<code> </code><code><</code><code>dependencies</code><code>></code>
<code> </code><code><!-- spring boot web 依賴 --></code>
<code> </code><code><</code><code>dependency</code><code>></code>
<code> </code><code><</code><code>groupid</code><code>>org.springframework.boot</</code><code>groupid</code><code>></code>
<code> </code><code><</code><code>artifactid</code><code>>spring-boot-starter-web</</code><code>artifactid</code><code>></code>
<code> </code><code></</code><code>dependency</code><code>></code>
<code> </code><code><!-- spring boot test 依賴 --></code>
<code> </code><code><</code><code>artifactid</code><code>>spring-boot-starter-test</</code><code>artifactid</code><code>></code>
<code> </code><code><</code><code>scope</code><code>>test</</code><code>scope</code><code>></code>
<code> </code><code><!-- spring boot mybatis 依賴 --></code>
<code> </code><code><</code><code>groupid</code><code>>org.mybatis.spring.boot</</code><code>groupid</code><code>></code>
<code> </code><code><</code><code>artifactid</code><code>>mybatis-spring-boot-starter</</code><code>artifactid</code><code>></code>
<code> </code><code><</code><code>version</code><code>>${mybatis-spring-boot}</</code><code>version</code><code>></code>
<code> </code><code><!-- mysql 連接配接驅動依賴 --></code>
<code> </code><code><</code><code>groupid</code><code>>mysql</</code><code>groupid</code><code>></code>
<code> </code><code><</code><code>artifactid</code><code>>mysql-connector-java</</code><code>artifactid</code><code>></code>
<code> </code><code><</code><code>version</code><code>>${mysql-connector}</</code><code>version</code><code>></code>
<code> </code><code><!-- junit --></code>
<code> </code><code><</code><code>groupid</code><code>>junit</</code><code>groupid</code><code>></code>
<code> </code><code><</code><code>artifactid</code><code>>junit</</code><code>artifactid</code><code>></code>
<code> </code><code><</code><code>version</code><code>>4.12</</code><code>version</code><code>></code>
<code> </code><code></</code><code>dependencies</code><code>></code>
<code></</code><code>project</code><code>></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 包提供的,如圖:
注解不涉及到配置,更近貼近 0 配置。再次感謝曉春 http://xchunzhao.tk/ 的 pull request~
歡迎掃一掃我的公衆号關注 — 及時得到部落格訂閱哦!
— http://www.bysocket.com/ —
— https://github.com/jeffli1993 —