小項目改造快速引入 mybatis的流程分析
項目背景
項目在最開始,定位為一個插件、功能補充,為現有的 OA 提供一個報表功能,用於統計各個流程的數據
功能方面非常簡單,考慮到開發速度,直接按 springboot
項目進行開發,依賴方面僅僅使用 spring-boot-starter-web, spring-boot-starter-jdbc, sqljdbc4, lombook
通過 @Bean
的方式註入 sql
查詢所需要的 JdbcTemplate
實例,後續的 sql
操作全部都以 template.queryForList(sqlStr)
的方式進行
由於忽略的 sql 上的復雜,加上 java8
尚未支持字符串模版,導致代碼中的 sql 類似於如下
閱讀、修改非常不便,決定還是引入 mybatis
,最核心的訴求提高 sql 的可閱讀性,以及可維護性
開始改造
引入對應的 start
pom.xml
中添加 springboot
專用的 mybatis
依賴
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.2</version> </dependency>
在 application.yml 中補充配置
主要是指定 mybatis
中 sql
所在的 xml
文件解析位置
mybatis: mapper-locations: - classpath:mybaits/*.xml
補充文件夾
項目的建議目錄排版如下:
|- src\main\java |- com.xx |- bean |- mapper xxxApplication |- src\main\resources |- static |- mybaits |- Request.xml application.yml
在 xxxApplication
這個啟動類的同層,建立 mapper
文件夾,用於存放相關的 xxMapper
的接口文件。需要在接口上使用類註解 @Mapper 讓 mybatis 框架來識別。 代碼示例如下
@Mapper public interface RequestMapper { }
在 mybatis
文件夾下,存放與 xxMapper
相對應的 xml
文件
根據 mybatis 官方文檔,可以得知用於存放 sql
的標準 xml
文件格式如下:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="org.mybatis.example.BlogMapper"> <select id="selectBlog" resultType="Blog"> select * from Blog where id = #{id} </select> </mapper>
我們需要修改 mapper
標簽中的 namespace
屬性,使之和我們的 xxMapper
對應;以同樣的格式補充新的 <select></select>
查詢語句
最後,將 通過 JdbcTemplate
執行的 sql
,規范為對應的 Mapper + xml
文件,並調整相關的函數調用,整個項目的改造就基本完成
總結
由於使用瞭 mybatis-spring-boot-starter
這個 start
,加上我們遵循一些默認約定,隻使用瞭一個配置就將 mybatis
應用到瞭這個項目上。這次改造中最大的變動就是將原 sql 處理為 xxMapper + xx.xml
兩種文件
可以欣賞一下,寫在 xml
中的 sql,是多麼的優雅
到此這篇關於小項目改造快速引入 mybatis的文章就介紹到這瞭,更多相關引入 mybatis內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 解決SpringBoot整合MybatisPlus分模塊管理遇到的bug
- springboot配置mybatis和事務管理方式
- 一篇超詳細的Spring Boot整合Mybatis文章
- SpringBoot整合Mybatis與MybatisPlus方法詳細講解
- Spring Boot 整合 TKMybatis 二次簡化持久層代碼的實現