1. 程式人生 > >在Spring Boot中使用MyBatis並且自動生成程式碼

在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,就會自動生成程式碼。