Spring数据访问模板化方法
作者:李灿辉 发布时间:2022-03-15 06:23:02
在读《Spring in Action》一书,读到Spring数据访问模板化的内容时,书中以乘坐飞机拖运行李为例,介绍了模板方法这一设计模式。
在乘坐飞机需要拖运行李时,我们需要需要进行行李登记。然后,将行李交给工作人员,工作人员会对行李进行称重,安全扫描检查,然后通过传送带将行李传送到摆渡车。摆渡车载上行李,将行李拉到飞机。到达目的地后,摆渡车会将行李从飞机上拉到取行李处,然后乘客取走自己的行李。
查看整个过程,这个过程对于所有乘客基本都是相同的。对不同乘客不一样的地方,是登记行李时需要各个乘客参与,称重后缴费时需要乘客参与,到达目的地后取走行李时需要乘客参与。除此之外,整个过程无需乘客参与,是不变的部分。
把上述场景抽象一下,就是模板方法这一设计模式。模板方法设计模式定义过程的架构。整个过程中不变的部分在父类中定义,过程中需要改变的部分,交由各个子类来实现。这样,对于具体业务逻辑来说,实现整个过程,只需要开发需要变化的部分,即各个子类的逻辑即可,而不用写大量的固定不变的代码。
在Spring访问数据库中的数据时,同样适用模板方法。
我们使用JDBC来访问数据库的数据时,大致的处理过程为,打开一个连接,开始事务,执行SQL,获取返回的数据,提交事务,关闭资源,异常处理等。在访问各个数据时,打开连接,开始事务,提交事务,关闭资源,异常处理等过程都是不变的,没有必要在每次访问数据时都把上述逻辑写一遍。每次访问数据时,我们应该专注于执行的SQL以及获取返回的数据。所以,可以使用模板方法这一设计模式,来优化这块的代码结构。
来源:https://blog.csdn.net/li_canhui/article/details/85319843


猜你喜欢
- 概述从今天开始, 小白我将带大家开启 Java 数据结构 & 算法的新篇章.优先队列优先队列 (Priority Queue) 和队
- 本文实例为大家分享了Android检测手机多点触摸点数的具体代码,供大家参考,具体内容如下说明:手指每点击一个地方,在那个地方就画一个圆第一
- 对某个类型中的方法进行拦截,然后加入固定的业务逻辑,这是AOP面向切面编程可以做的事,在springboot里实现aop的方法也有很多, s
- 前言:页面静态化其实就是将原来的 * 页(例如通过ajax请求动态获取数据库中的数据并展示的网页)改为通过静态化技术生成的静态网页,这样用户
- 本文实例讲述了C#利用Random得随机数求均值、方差、正态分布的方法。分享给大家供大家参考。具体如下:最近在做中小学试卷分析系统,其中数据
- 对于本地图片我们可以通过selector来轻松的实现点击态。 但是在我们的项目中,一个关于对非本地图片的点击态实现还是难倒了不少人;因此专门
- 前言你好! 本文章主要介绍如何用Android Studio制作简易的门户界面,主要说明框架的各部分功能与实现过程,结尾处附有源码。界面分析
- 简介我们在前面的Android教程中已经提到过这么一件事:Android在启动后会有一个主线程。它不允许任何子线程去改变主UI线程里的内容。
- 使用第三方的vitamio插件实现简易的播放器。vitamio版本(5.2.3)官网地址:官网地址效果展示效果项目结构代码:MainActi
- 本文实例讲述了Android实现彩信附件的添加与删除功能。分享给大家供大家参考,具体如下:添加附件在ComposeMessageActivi
- Java的Arrays类中有一个sort()方法,该方法是Arrays类的静态方法,在需要对数组进行排序时,非常的好用。但是sort()的参
- 本文实例讲述了C#中文随机数实现方法。分享给大家供大家参考。具体如下:/// <summary>/// 随机中文码/// <
- 大家都知道NPOI组件可以在你本地没有安装office的情况下来 读取,创建excel文件。但是大家一般都是只默认读取一个excel文件的第
- 在项目中如果涉及到用Excel开发的报表模版来导出报表数据的话,一般都是在Excel报表中使用VBA做成宏来进行调用。即先使用Excel自带
- 一、什么是委托呢?听着名字挺抽象,确实不好理解。面试官最喜欢考察这个,而且更喜欢问:“委托和事件有何异同?”。如果对一些知识点没有想明白,那
- 本文实例为大家分享了DigitalClock实现商品倒计时的具体代码,供大家参考,具体内容如下自定义DigitalClock控件:packa
- 公司有一个需求,实现一个多级的树形菜单,并且支持多选功能,实现这个功能之前,我在网上找了找,树形菜单很好找,但是支持多选功能并没有很合适的,
- int -> String int i=12345;String s="";核心:s=i+""
- 一、Spring Boot Admin 的概念 Spring Boot Admin是一个
- 新建一个txt的文本(代码中读取这个文本文档路径就行,命名随意)里面的内容一行代表一个,因为我是按行来遍历循环读取要屏蔽的关键字.然后用一个