小项目改造快速引入 mybatis的流程分析

网友投稿 248 2022-07-27


目录项目背景开始改造引入对应的 start在 application.yml 中补充配置补充文件夹总结

项目背景

项目在最开始,定位为一个插件、功能补充,为现有的 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 依赖

org.mybatis.spring.boot

mybatis-spring-boot-starter

ztiqc 2.2.2

在 application.yml 中补充配置

主要是ztiqc指定 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 文件格式如下:

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select * from Blog where id = #{id}

我们需要修改 mapper 标签中的 namespace 属性,使之和我们的 xxMapper 对应;以同样的格式补充新的 查询语句

最后,将 通过 JdbcTemplate 执行的 sql,规范为对应的 Mapper + xml 文件,并调整相关的函数调用,整个项目的改造就基本完成

总结

由于使用了 mybatis-spring-boot-starter 这个 start,加上我们遵循一些默认约定,只使用了一个配置就将 mybatis 应用到了这个项目上。这次改造中最大的变动就是将原 sql 处理为 xxMapper + xx.xml 两种文件

可以欣赏一下,写在 xml 中的 sql,是多么的优雅


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:解析MyBatis源码实现自定义持久层框架(mybatis是持久层框架吗)
下一篇:SpringMVC使用注解配置方式(常用springmvc注解)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~