在Spring Boot中使用MyBatis並且自動生成程式碼
MyBatis目前是主流的資料訪問層框架,我司目前的專案大部分都是用MyBatis。本文將使用Spring Boot快速建立專案,並且在Spring Boot中使用MyBatis,編寫了一個根據區域id獲取區域資訊的介面例子。在最後,使用MyBatis的Generator自動生成程式碼。
0、新建Spring Boot專案
開啟開發工具:IntelliJ IDEA,選擇jdk 1.8以上。
點選File→New→Project...,選擇Spring Initializr。
然後next:
next,選擇當前最新版本1.5.2,勾選web、MyBatis和Mysql
最後finish完成專案建立。
1、建好經典的三層結構,controller存放控制層程式碼,service存放業務邏輯層程式碼,dao存放資料訪問層程式碼,另外model存放實體類。
2、在application.properties檔案中新增mybatis配置和mysql資料庫連線配置
3、在Application.java應用啟動類新增MapperScan註解
4、建立資料庫表area
5、編寫程式碼
實體類Area.java
AreaDao.java
mybatis的sql配置檔案AreaMpper.xml
AreaService.java
AreaServiceImpl.java
最後是AreaController.java
編寫程式碼後,整個結構是這樣子的:
可以看到我把mybatis的sql配置檔案也放在dao層中了,這樣可以使目錄結構清晰,但是如果這時候執行專案,就會報一個錯:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)......說找不到sql的配置檔案。
原因:是idea對calsspath的規定,在idea中直接把資原始檔放在src資料夾下是不能被找到的。
解決方法:
在idea上點選File -> Project Struture -> Modules -> Dependencies -> "+" -> JARS or directories -> 選擇sql配置檔案所在的包-> 彈出Choose Categories of Selected Files -> 勾選 -> OK
6、執行主類Application.java,訪問介面:http://localhost:8080/area/getAreaInfo?id=1
可以看到,直接返回了json資料。其實Spring Boot預設已經引用好了JackSon,不需要我們另外配置什麼。而且Spring Boot已經封裝好了spring mvc,不需要我們再去整合spring mvc。
至此,我們已經完成了一個根據區域id獲取區域資訊的介面例子。
==========================這是分割線=============================
其實。我們可以不用自己一個一個去寫mybatis的sql檔案,dao介面和實體類。可以利用mybaits的generator自動生成程式碼。在idea中使用mybatis generator要做一些設定。
0、在pom.xml中增加generator外掛
1、在resources下增加generatorConfig.xml檔案
2、在idea中新增一個generator外掛執行選項。
首先,點選run→Edit Configurations...如下圖
在彈出的視窗中點選“+”號,選擇Maven,填寫Name和Command line,如下圖
點選ok完成設定。
點選Run generator,就會自動生成程式碼。