[图解]企业应用架构模式2024新译本讲解16-行数据入口2

news2024/10/7 16:15:15

1
00:00:00,750 --> 00:00:02,470
好,我们来看代码

2
00:00:03,430 --> 00:00:06,070
我们一步一步执行

3
00:00:42,500 --> 00:00:45,000
先初始化数据

4
00:00:52,300 --> 00:00:53,650
创建连接

5
00:00:55,900 --> 00:00:56,970
这里面

6
00:00:57,780 --> 00:01:00,100
通过DBManager这个类

7
00:01:00,110 --> 00:01:04,280
然后这里面创建

8
00:01:04,290 --> 00:01:07,360
连接返回一个SQLite的连接

9
00:01:09,020 --> 00:01:10,610
这里用的SQLite数据库

10
00:01:19,270 --> 00:01:20,990
然后创建一个命令

11
00:01:22,530 --> 00:01:25,790
这个是删除person表

12
00:01:25,800 --> 00:01:28,950
就是说,里面如果有这个表把它删除掉

13
00:01:29,320 --> 00:01:35,410
把以前可能有的数据

14
00:01:35,420 --> 00:01:37,210
表什么的全部清掉

15
00:01:37,580 --> 00:01:41,730
重新建立,初始化

16
00:01:43,620 --> 00:01:47,460
然后,弄完了,创建表

17
00:01:47,890 --> 00:01:51,310
然后就把三个人的数据插进去

18
00:01:56,610 --> 00:02:04,360
好,这是初始化数据,下一个就是获取负责人,负责人是什么

19
00:02:04,770 --> 00:02:10,830
他的依赖者或者家属个数大于0的

20
00:02:14,670 --> 00:02:19,470
这里面,它先创建了一个查找器

21
00:02:23,180 --> 00:02:24,950
然后通过查找器

22
00:02:26,130 --> 00:02:30,530
来执行查询的任务

23
00:02:30,540 --> 00:02:31,730
查找负责人

24
00:02:34,250 --> 00:02:40,270
这是Finder,就是查找器的类

25
00:02:41,920 --> 00:02:46,070
这里定义了根据ID查询的SQL语句

26
00:02:46,750 --> 00:02:50,460
查询负责人,就是依赖者>0的SQL语句

27
00:02:54,440 --> 00:02:57,160
返回的是一个

28
00:02:57,480 --> 00:02:59,500
PersonGateway的列表

29
00:03:00,530 --> 00:03:02,760
首先,先创建一个列表

30
00:03:05,760 --> 00:03:10,160
然后打开数据库连接,一样的

31
00:03:12,870 --> 00:03:14,280
然后创建命令对象

32
00:03:14,290 --> 00:03:17,180
SQL语句在这里

33
00:03:18,990 --> 00:03:21,340
执行,然后查询结果

34
00:03:21,350 --> 00:03:24,460
在reader这里

35
00:03:24,470 --> 00:03:33,220
这一步就是轮询reader了

36
00:03:33,230 --> 00:03:37,800
然后把reader里面返回的记录

37
00:03:39,510 --> 00:03:42,090
把它加载到PersonGateway

38
00:03:42,100 --> 00:03:43,850
对象

39
00:03:49,060 --> 00:03:51,000
然后把它添加到列表里面

40
00:03:51,680 --> 00:03:53,470
这里先加载

41
00:03:53,480 --> 00:03:56,960
这里定义了一个加载的操作

42
00:03:57,130 --> 00:04:02,870
这个地方,参数是一个reader

43
00:04:04,520 --> 00:04:09,440
就是说,这里面一行一行来,先弄一行

44
00:04:09,450 --> 00:04:14,000
然后再把reader作为参数传进去,加载

45
00:04:16,310 --> 00:04:22,080
那就转到了Gateway这个类了

46
00:04:24,170 --> 00:04:30,230
这里有一个加载的操作,参数是DataReader

47
00:04:32,220 --> 00:04:34,490
首先,这里定义了一个对象数组

48
00:04:36,170 --> 00:04:40,890
那么这个数组的长度就是字段的数量,有几个

49
00:04:41,400 --> 00:04:42,950
就是4个

50
00:04:44,590 --> 00:04:51,000
4个字段,这样刚好,4个

51
00:04:51,010 --> 00:04:55,840
然后用这个来存放,一行里面4列

52
00:04:55,850 --> 00:04:57,640
4个值

53
00:04:58,430 --> 00:05:03,530
然后用DataReader的操作

54
00:05:03,540 --> 00:05:09,010
来把Reader的当前行里面

55
00:05:09,020 --> 00:05:11,210
有4列数据

56
00:05:11,780 --> 00:05:12,920
填到这里面来

57
00:05:14,800 --> 00:05:16,800
这个名字有点怪

58
00:05:17,540 --> 00:05:21,150
这里应该是把这里的数据弄到这里面来

59
00:05:21,160 --> 00:05:21,470


60
00:05:21,970 --> 00:05:24,310
应该是说set什么

61
00:05:24,700 --> 00:05:25,790
或者push什么的

62
00:05:26,080 --> 00:05:28,060
就把数据推给你

63
00:05:28,370 --> 00:05:29,350
这变成get

64
00:05:30,020 --> 00:05:32,660
好像从这里来拿数据

65
00:05:33,200 --> 00:05:34,410
到这边来一样

66
00:05:36,560 --> 00:05:38,760
有点怪,名字起得不太合理

67
00:05:40,170 --> 00:05:42,530
好,得回来

68
00:05:42,540 --> 00:05:44,690
这个之后

69
00:05:44,970 --> 00:05:46,200
里面有一个ID

70
00:05:46,210 --> 00:05:47,960
有姓名

71
00:05:47,970 --> 00:05:49,320
有亲属数量

72
00:05:50,070 --> 00:05:52,780
有4列

73
00:05:53,330 --> 00:05:53,970
4个数

74
00:05:54,350 --> 00:05:59,550
首先先把第0列,数组的第0个元素

75
00:05:59,560 --> 00:06:03,680
就是ID这一项取出来

76
00:06:06,130 --> 00:06:07,210
我们现在有ID了

77
00:06:07,220 --> 00:06:16,510
然后首先要在注册表这里查找

78
00:06:18,300 --> 00:06:24,190
根据ID在注册表里面查找到入口对象

79
00:06:24,860 --> 00:06:29,940
看有没有,它如果在注册表里面有

80
00:06:31,050 --> 00:06:35,940
那就是注册表里面这个,如果是没有

81
00:06:38,360 --> 00:06:39,670
也就是说,它没有加载过

82
00:06:39,680 --> 00:06:45,750
那就要从数据库里面,没有加载过

83
00:06:45,760 --> 00:06:47,190
就用数据库里面

84
00:06:47,200 --> 00:06:49,310
因为这是从数据库来的

85
00:06:49,900 --> 00:06:51,410
reader这边过来的

86
00:06:52,010 --> 00:06:57,200
就用后面的这几个字段来给它赋值

87
00:06:58,850 --> 00:07:00,920
这样来,这里面

88
00:07:00,930 --> 00:07:03,280
用到了注册表

89
00:07:05,040 --> 00:07:05,770
这样一个类

1
00:00:01,320 --> 00:00:02,080
注册表

2
00:00:02,690 --> 00:00:07,780
也是企业应用架构模式里面的归纳的一个模式

3
00:00:08,990 --> 00:00:10,260
它属于基本模式

4
00:00:10,390 --> 00:00:13,380
第18章的基本模式里面的一个模式

5
00:00:17,060 --> 00:00:20,480
这是书上的原文,有些改动

6
00:00:23,720 --> 00:00:25,430
意思就是说,你看这里

7
00:00:26,410 --> 00:00:28,290
没有合适的初始对象

8
00:00:29,500 --> 00:00:30,320
你就一个ID

9
00:00:31,380 --> 00:00:34,060
那么它就提供了一个

10
00:00:35,100 --> 00:00:37,660
存放公共对象或者服务的地方

11
00:00:38,160 --> 00:00:40,890
让你可以通过一个ID去获取它

12
00:00:42,570 --> 00:00:44,810
比如说,这里,注册表

13
00:00:44,980 --> 00:00:46,930
然后这里ID

14
00:00:47,680 --> 00:00:52,500
然后获得入口

15
00:00:52,510 --> 00:00:53,900
人员入口对象

16
00:00:55,670 --> 00:00:56,950
实际上应该是入口

17
00:00:57,120 --> 00:00:59,550
不是这个人,但是它这样写就写了

18
00:01:01,040 --> 00:01:05,170
这个也是,如果有一个新的人员对象

19
00:01:05,430 --> 00:01:08,940
要把它添加到里面去

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1849428.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机组成原理笔记-第4章 存储器

第4章 存储器 笔记PDF版本已上传至Github个人仓库:CourseNotes,欢迎fork和star,拥抱开源,一起完善。 该笔记是最初是没打算发网上的,所以很多地方都为了自我阅读方便,我理解了的地方就少有解释&#xff1b…

【ARM】MDK自动备份源文件

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决MDK在编写文档的时候需要找回上一版代码的问题。 2、 问题场景 目前大部分情况下对于源代码的管理都是使用的Git等第三方的代码管理平台。这样的第三方代码管理平台都是针对与代码的版本更新进行管理。对于本地…

SwiftUI 6.0(iOS 18)ScrollView 全新的滚动位置(ScrollPosition)揭秘

概览 在只有方寸之间大小的手持设备上要想体面的向用户展示海量信息,滚动视图(ScrollView)无疑是绝佳的“东牀之选”。 在 SwiftUI 历史的长河中,总觉得苹果对于 ScrollView 视图功能的升级是在“挤牙膏”。这不,在本…

【图解IO与Netty系列】Netty源码解析——ChannelPipeline中的责任链模式

Netty源码解析——ChannelPipeline中的责任链模式 ChannelPipeline的作用ChannelPipeline的设计ChannelPipeline源码解析 ChannelPipeline的作用 ChannelPipeline在Netty中的作用,主要是在有事件就绪时,用于处理就绪事件的。我们知道真正处理就绪事件的…

力扣SQL50 每月交易 I 求和 SUM(条件表达式) DATE_FORMAT(日期,指定日期格式)

Problem: 1193. 每月交易 I 👨‍🏫 参考题解 Code select DATE_FORMAT(trans_date, %Y-%m) AS month,country,count(*) as trans_count,count(if(state approved, 1, NULL)) as approved_count,sum(amount) as trans_total_amount,sum(if(state appr…

5.3 Python len()函数:获取字符串长度或字节数

Python len()函数详解:获取字符串长度或字节数 Python 中,要想知道一个字符串有多少个字符(获得字符串长度),或者一个字符串占用多少个字节,可以使用 len 函数。 len 函数的基本语法格式为: …

性能工具之 MySQL OLTP Sysbench BenchMark 测试示例

文章目录 一、前言二、测试环境1、服务器配置2、测试拓扑 三、测试工具安装四、测试步骤1、导入数据2、压测数据3、清理数据 五、结果解析六、最后 一、前言 做为一名性能工程师掌握对 MySQL 的性能测试是非常必要的,本文基于 Sysbench 对MySQL OLTP(联…

YOLOv8中的C2f模块

文章目录 一、结构概述二、模块功能 一、结构概述 C2f块:首先由一个卷积块(Conv)组成,该卷积块接收输入特征图并生成中间特征图特征图拆分:生成的中间特征图被拆分成两部分,一部分直接传递到最终的Concat块,另一部分传递到多个Botleneck块进…

uniapp(全端兼容) - 最新详细实现刻度尺组件效果,uni-app实现尺子打分及手指拖动刻度尺打分评分功能,可左右滑动刻度尺改变数值、带刻度尺滑块功能、

效果图 在uniapp微信小程序/手机h5网页网站/安卓app/苹果app/支付宝小程序/nvue等(全平台完美兼容)开发中,实现uniApp各端都兼容的 “刻度尺(横格尺 | 尺子)” 手势左右两侧拖动、手指滑动刻度尺功能,水平刻度尺,支持自定义尺子颜色、大小、刻度、滑动时的步进值、最大…

【Java】已解决java.net.ConnectException异常

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决java.net.ConnectException异常 在Java的网络编程中,java.net.ConnectException是一个常见的异常,它通常表明在尝试建立网络连接时出现了问题。本文将…

“循环购“:快消品行业的创新商业模式引领者

大家好,我是吴军,来自一家在软件开发与商业模式创新领域享有盛誉的公司。我们专注于为企业提供全方位的商城系统搭建及商业模式定制服务。迄今为止,我们已经成功地为众多企业打造了超过200种独特的商业模式,助力他们实现了显著的商…

如何跳出认知偏差,个人认知能力升级

一、教程描述 什么是认知力?认知力(cognitive ability),实际上就是指一个人的认知能力,是指人的大脑加工、储存和提取信息的能力,或者主观对非主观的事物的反映能力,如果变成大白话&#xff0c…

Dev Eco Studio设置中文界面

Settings-Plugins-installed-搜索Chinese

WindTerm软件的本地模式和远程模式

WindTerm作为一个多功能的远程终端控制软件,支持本地模式和远程模式两种键盘输入处理方式,这两种模式的主要区别在于键盘输入的处理逻辑和目标: 本地模式(Local Mode) 在本地模式下,WindTerm不对键盘输入…

Android设计模式系列--模板方法模式

认识到模板方法的这种思想,父类可以让未知的子类去做它本身可能完成的不好或者根本完成不了的事情,对框架学习大有帮助。 本文以View中的draw方法为例,展开分析。 模板方法,TemplateMethod,光是学习这个模式&#xf…

Flutter第十二弹 Flutter多平台运行

目标: 1.在多平台调试启动Flutter程序运行 一、安卓模拟器 1.1 检查当前Flutter适配的版本 flutter doctor提供了Flutter诊断。 $ flutter doctor --verbose /Users/zhouronghua/IDES/flutter/bin/flutter doctor --verbose [✓] Flutter (Channel master, 2.1…

npm 安装踩坑

1 网络正常,但是以前的老项目安装依赖一直卡住无法安装?哪怕切换成淘宝镜像 解决办法:切换成yarn (1) npm i yarn -g(2) yarn init(3) yarn install在安装的过程中发现: [2/4] Fetching packages... error marked11.1.0:…

2025届阳光保险集团应届生校招社招入职测评真题题库北森自适应测评题库

第1题 人类使用塑料袋的历史很短,但对塑料袋的指责却不绝于耳。全世界每年要消耗5000亿到1万亿个塑料袋。废弃的塑料袋被掩埋会影响农作物吸收营养和水分,污染地下水;焚烧塑料袋则会产生有毒气体,影响人体健康。因此如何处理塑料袋十分重要。…

电路仿真实战设计教程--平均电流控制原理与仿真实战教程

1.平均电流控制原理: 平均电流控制的方块图如下,其由外电路电压误差放大器作电压调整器产生电感电流命令信号,再利用电感电流与电流信号的误差经过一个电流误差放大器产生PWM所需的控制电压,最后由控制电压与三角波比较生成开关管的驱动信号。 2.电流环设计: 根据状态平…

基于chatgpt-on-wechat搭建个人知识库微信群聊机器人

前言 啊,最近在别人微信群里看到一个聊天机器人,感觉挺好玩的。之前GPT刚出来的时候就知道有人把聊天机器人接入到微信或者QQ中来增加互动,但是当时没想那个想法。 很久没关注这块了,发现现在可以使用大模型知识库的方式来打造自…