c语言sscanf函数的用法是什么
246
2022-10-03
小项目改造快速引入 mybatis的流程分析
目录项目背景开始改造引入对应的 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 依赖
ztiqc
在 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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~