小项目改造快速引入 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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
mybatis-plus实现自定义SQL、多表查询与多表分页查询语句实例
mybatisplus是个很好用的插件,相信小伙伴们都知道,下面这篇文章主要给大家介绍了关于mybatis-plus实现自定义SQL、多表查询与多表分页查询语句的相关资料,需要的朋友可以参考下2022-09-09Java安全 ysoserial CommonsCollections2示例分析
这篇文章主要为大家介绍了Java安全 ysoserial CommonsCollections2示例分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-11-11解决Mybatis-Plus更新方法不更新NULL字段的问题
这篇文章主要介绍了解决Mybatis-Plus更新方法不更新NULL字段的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-12-12SpringBoot使用Thymeleaf自定义标签的实例代码
这篇文章主要介绍了SpringBoot使用Thymeleaf自定义标签的实例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-09-09
最新评论