Odoo 18 中的列表(list) 、表单(Form)、数据透视表、图表视图、看板视图、活动视图、日历视图等综合应用实例
Odoo 18 中的 视图应用实例
在 Odoo 中,视图是用户界面中表示业务对象的重要组成部分。无论您是扩展现有功能还是创建全新的功能,业务对象都至关重要。这些对象通过不同类型的视图向用户展示,而 Odoo 会根据 XML 描述动态生成这些视图。
列表视图或树形视图
列表视图或树形视图用于在单个界面中显示多条记录,结构类似于列表或树。每一行对应数据库中的一条记录,而列则表示这些记录中的字段。
这种视图允许进行排序、筛选和分组等操作。由于odoo18中, 标签已经不再使用,并入标签中,它使用 标签定义,作为根元素。以下是定义树形视图的示例:
<record id="view_student_data_tree" model="ir.ui.view"><field name="name">student.data.tree</field><field name="model">student.data</field><field name="arch" type="xml"><list><field name="name"/><field name="class_name"/><field name="address"/></list></field>
</record>
在 ir.ui.view 模型中创建树形视图记录后,您需要在窗口操作中将视图模式设置为 ‘list’。您可以在下面提到的表单视图记录下方的代码块中观察到这一点。
表单视图
表单视图用于显示单条记录的详细信息,提供该记录中数据的详细视图。它封装在 标签中,包含结构和语义组件。
表单视图中的字段使用 标签排列。您可以使用 和 标签对表单视图进行样式设置,其中 用于将字段组织成列:
<?xml version="1.0" encoding="utf-8"?>
<odoo><record id="action_student_record" model="ir.actions.act_window"><field name="name">学生管理</field><field name="res_model">student.data</field><field name="view_mode">list,form</field><field name="help" type="html"><p class="o_view_nocontent_smiling_face">创建数据</p></field></record><record id="view_student_data_tree" model="ir.ui.view"><field name="name">student.data.tree</field><field name="model">student.data</field><field name="arch" type="xml"><list><field name="name"/><field name="class_name"/><field name="address"/></list></field></record><record id="view_student_data_form" model="ir.ui.view"><field name="name">student.data.form</field><field name="model">student.data</field><field name="arch" type="xml"><form string="Student"><header><field name="state" widget="statusbar"/><button name="action_student" type="object" string="查看" class="btn btn-primary me-1"/><button name="Cancel" string="取消 " class="btn-default" special="cancel"/></header><sheet><group><group><field name="name" string="姓名"/><field name="class_name" string="班级"/></group><group><field name="address" string="地址"/></group></group></sheet><chatter/></form></field></record><menuitem id="student_menu_root"name="学生管理"sequence="10"><menuitem id="student_order_menu"name="学生"sequence="10"><menuitem id="menu_student_records"name="学生记录"action="action_student_record"sequence="10"></menuitem></menuitem></menuitem>
</odoo>
在上面的代码中,您可以看到另一个定义窗口操作的记录,它指定了用户如何在 Odoo 界面中与 student.data模型进行交互。
此代码为 Odoo 中的 student.data 模型定义了一个窗口操作:
- Name:操作标签为“学生管理”。
- Model:它操作 student.data 模型。
- View Model:默认以树形(列表)视图显示记录,同时提供切换到表单视图以查看详细记录的选项。如果您为模型创建了任何视图记录,则需要相应地指定视图模式。例如,对于数据透视视图,添加 pivot;对于图表视图,添加 graph;对于看板视图,添加 kanban;对于活动视图,添加 activity;对于日历视图,添加 calendar;对于层次视图,添加 hierarchy。
此操作允许用户高效地管理和查看学生记录。
注意:在odoo18中,聊天窗口视图可以直接用代替。
数据透视视图
数据透视视图在数据分析中起着重要作用,允许用户以各种方式生成和筛选报表。对于需要下载报表(尤其是 XLSX 格式)的用户来说,它是理想的选择。
数据透视视图在 标签中定义,其中指定了字段及其类型。字段可以按行或列组织以结构化数据:
<record id="student_view_pivot" model="ir.ui.view"><field name="name">student.view.pivot</field><field name="model">student.data</field><field name="arch" type="xml"><pivot string="Student Class Analysis"><field name="name" type="row"/><field name="class_name" type="col"/></pivot></field></record>
图表视图
图形视图以可视化方式呈现数据,允许用户通过条形图、饼图等图形格式快速解读信息。它在 标签中定义,通过属性指定图表类型和要可视化的字段:
以下是用于可视化每个日期注册学生数量的图表视图示例:
<record id="student_view_graph" model="ir.ui.view"><field name="name">student.view.graph</field><field name="model">student.data</field><field name="arch" type="xml"><graph string="Class Statistics" type="bar"><field name="name" type="col"/><field name="class_name" type="row"/></graph></field>
</record>
图表视图中的每个字段都可以有一个 type 属性,该属性会影响数据的分组或测量方式:
·type=“row” 表示每个组将有自己的一行。
·type=“col” 用于按列分组。
·type=“measure” 通常应用于整数或浮点数等数值数据,示将在图形中进行度量或汇总的数据。
这允许根据视图的需求进行灵活和动态的数据呈现。
看板视图
看板视图将记录显示为卡片,可以分组到列中以方便可视化。此视图特别适用于项目管理或任何需要将任务或记录分类并可视化监控的场景。
看板视图在 标签中定义,视图包括一系列 QWeb 模板。根模板通常命名为 kanban-box,包含构成看板卡片的字段和 HTML 类。
<record id="student_view_kanban" model="ir.ui.view"><field name="name">student.view.kanban</field><field name="model">student.data</field><field name="arch" type="xml"><kanban class="o_kanban_view" string="Student Progress"><templates><t t-name="kanban-box"><div t-attf-class="oe_kanban_card oe_kanban_global_click"><div class="o_kanban_content"><strong><div class="oe_kanban_title"><field name="name"/></div></strong><div>Class: <field name="class_name"/></div><div>Status: <field name="state"/></div></div></div></t></templates></kanban></field></record>
此外,您还可以使用其他属性,如 default_group_by 和 default_order:
·default_group_by:用于在看板视图中对记录进行分组。
·default_order:确定记录的默认排序顺序。
搜索视图
搜索视图用于筛选和搜索记录。这些视图通过允许用户快速找到所需信息来提高用户效率。
以下是基于各种条件查找学生的搜索视图示例:
student.view.search student.data搜索视图对于根据特定条件筛选记录至关重要,使数据检索快速高效。它们在 标签中定义。
活动视图
活动视图用于管理和安排与记录相关的活动,帮助用户保持条理并跟踪任务。
以下是用于安排学生活动的活动视图示例:
<record id="student_view_activity" model="ir.ui.view"><field name="name">student.view.activity</field><field name="model">student.data</field><field name="arch" type="xml"><activity string="Event"><templates><div t-name="activity-box"><div><field name="name" string="Student Name" class="o_text_block o_text_bold"/><field name="class_name"/></div></div></templates></activity></field>
</record>
此视图封装在 标签中,根元素称为 activity-box。您可以在 标签内指定字段,从而系统地组织内容。
日历视图
日历视图对于组织来说是不可或缺的,它有助于跟踪重要日期和事件。视图在 标签内构建,通过 date_start、date_stop 和 color 等属性控制显示:
以下是用于管理学生注册的日历视图示例:
student.view.calendar student.data配置日历视图时,可以使用多个属性:
·date_start:指定事件的开始日期。
·date_stop:定义事件的结束日期。
·date_delay:作为 date_stop 字段的替代。
·color:用于为项目应用颜色。
·mode:确定日历加载时的视图模式,例如“天”、“周”或“月”。
层次视图
Odoo 18 中的层次视图用于以树形结构显示具有父子关系的记录。此视图非常适合组织自然形成层次结构的数据,例如类别或组织图表。
以下是定义 tuition.student 模型层次视图的示例:
<record id="student_class_view_hierarchy" model="ir.ui.view"><field name="name">student.class.view.hierarchy</field><field name="model">student.data</field><field name="arch" type="xml"><hierarchy child_field="child_ids" draggable="1"><field name="name"/><templates><t t-name="hierarchy-box"><div t-attf-class="o_hierarchy_node_header d-flex justify-content-center pb-4" t-att-title="parent_id"></div><div class="o_hierarchy_node_body d-flex flex-column text-center"><div class="w-100 position-relative"><field class="fw-bold" name="name"/><br/></div></div></t></templates></hierarchy></field></record>
Odoo 中的高级层次视图功能增强了各种菜单功能的效率,使平台在业务管理中更加有效。
Odoo 中的高级层次结构视图功能显著提高了各种菜单功能的效率和组织性,从而提升了该平台在业务管理方面的整体效能。此视图允许用户可视化和管理记录中复杂的父子关系,使在系统内的导航和操作更加容易。
除了层次视图外,Odoo 还提供其他专用视图,例如 队列视图 和 甘特图视图,这些视图仅在企业版中提供。这些视图提供了额外的功能,用于跟踪和管理随时间变化的数据,帮助企业进一步优化其运营。
- 队列视图:非常适合分析特定时间段内的数据,例如跟踪客户保留率或项目进度。
- 甘特图视图:为项目管理提供了强大的工具,允许用户以甘特图格式可视化任务和时间线。
相关文章:
Odoo 18 中的列表(list) 、表单(Form)、数据透视表、图表视图、看板视图、活动视图、日历视图等综合应用实例
Odoo 18 中的 视图应用实例 在 Odoo 中,视图是用户界面中表示业务对象的重要组成部分。无论您是扩展现有功能还是创建全新的功能,业务对象都至关重要。这些对象通过不同类型的视图向用户展示,而 Odoo 会根据 XML 描述动态生成这些视图。 列…...
单元测试mock
一、背景 现在有A类,B类,C类,A类依赖B类,依赖C类,如果想要测试A类中的某个方法的业务逻辑。A类依赖其他类,则把其他类给mock,然后A类需要真实对象。这样就可以测试A类中的方法。 举例:Ticket类需要调用Flight类和Pas…...
PDF文件转Markdown,基于开源项目marker
首先我们来问下deepseek 为啥要选marker呢 基于深度学习,一看就逼格拉满。搞科研必备,效果应该不会太差。跟其他的阿猫阿狗工具没法比。 看下官网 https://github.com/VikParuchuri/marker 一看头像是个印度佬,自吹——又快又好。…...
mysql中find_in_set()函数用法详解及增强函数
MySQL的 FIND_IN_SET()函数是一种特殊的函数,它主要用于搜索一个字符串在一个逗号分隔的字符串列表中的位置。 函数的基本语法 FIND_IN_SET(str, strlist) 其中,str是你想要查找的字符串,而 strlist是一个包含多个以逗号分隔的字符串的列表…...
深入理解 JavaScript/TypeScript 中的假值(Falsy Values)与逻辑判断 ✨
🕹️ 深入理解 JavaScript/TypeScript 中的假值(Falsy Values)与逻辑判断 在 JavaScript/TypeScript 开发中,if (!value) 是最常见的条件判断之一。它看似简单,却隐藏着语言的核心设计逻辑,也是许多开发者…...
批量合并 PPT 文件,支持合并成单个文件也支持按文件夹合并
合并多个 PPT 为一个 PPT 文档是我们经常会碰到的需求,合并后不仅更容易管理,在某些场景(比如批量打印)下也非常的有用,那当我们需要批量合并多个 PPT 文档地时候,我们有没有比较高效的方法呢?今…...
Java复习
在开篇前首先申明一下,本文虽不够系统,但复习够用,尤其是快速回忆( •̀ ω •́ )✧与提问。 主打一个速度。 本文将会从Java的基础语法、面向对象、API、字符串、集合、进阶...等六方面讲起。 一、Java的基础语法: 1、Java入门…...
keepalived+nginx+tomcat高可用
1.要求 角色主机名软件IP地址用户client192.168.72.90keepalivedvip192.168.72.100mastermasterkeepalived, nginx192.168.72.30backupbackupkeepalived, nginx192.168.72.32webtomcat1tomcat192.168.72.41webtomcat2tomcat192.168.72.42 1.搭建Tomcat 1.1下载jdk wget http…...
RK3568 Android11 sh366006驱动
sh366006.c /* 谁愿压抑心中怒愤冲动咒骂这虚与伪与假从没信要屈膝面对生命纵没有别人帮一生只靠我双手让我放声疯狂叫囔今天的他 呼风可改雨不可一世太嚣张 --《不可一世》Beyond */ #include <linux/module.h> #include <linux/init.h> #include <linux/fs.h…...
实现分布式锁需要考虑哪些问题?
🔒 什么是分布式锁? 分布式锁是在分布式系统中控制共享资源访问的机制,用于解决高并发场景下数据不一致、操作冲突等问题。核心目标是保证跨进程 / 跨节点的互斥性,常见实现方案包括:数据库锁、Redis 锁、ZooKeeper 锁…...
【UI设计】一些好用的免费图标素材网站
阿里巴巴矢量图标库https://www.iconfont.cn/国内最大的矢量图标库之一,拥有 800 万 图标资源。特色功能包括团队协作、多端适配、定制化编辑等,适合企业级项目、电商设计、中文产品开发等场景。IconParkhttps://iconpark.oceanengine.com/home字节跳动…...
mysql-大批量插入数据的三种方式和使用场景
1.批量插入三种方式 INSERT INTO … SELECTINSERT INTO … VALUES (…)LOAD DATA INFILE ‘/path/to/datafile.csv’ INTO TABLE table_name 2.批量插入 2.1 INSERT INTO … SELECT 用途:从另一个表中选择数据并插入到目标表中。 语法示例: INSERT …...
创建自己的github.io
1、创建GitHub账号 GitHub地址:https://github.com/ 点击Sign up创建账号 如果已创建,点击Sign in登录 2、创建仓库 假设Owner为username,则Repository name为username.github.io说明: 1、Owner为用户名 2、Repository name为仓…...
Oracle 常用语法汇总
系列文章目录 本文对Oracle 常用的语法进行汇总 文章目录 系列文章目录一、Oracle 表&表字段操作:1.1 DDL语句(数据定义语言)Create、Alter、Drop、Truncate:1.1.1 建表:建表:注释COMMENT :表中字段的约束:表中字…...
java小白日记38(集合-List)
List接口基本介绍 List接口是collection接口的子接口 (1)List集合类中元素有序(即添加顺序和取出顺序一致)、且可以重复 (2)List集合中的每个元素都有其对应的顺序索引,即支持索引 …...
高能ISP模块功能说明
先看一些常见缩写: BPS:Bayer processing segment CPP:Camera post processor DE:Detailed enhancement EIS:Electronic image stabilization IFE:Image front-end engine IPE:Image-proc…...
单臂路由实验
单臂路由实验 文章目录 单臂路由实验单臂路由简介工作原理优点与缺点应用场景 实验拓扑实验需求:实验步骤:1.PC 配置 IP 地址2.PC3 属于 Vlan10,PC4 属于 Vlan20,配置单臂路由实现 Vlan10 和 Vlan20 三层互通2.1.在 SW2 上创建 Vl…...
SpringMVC全局异常处理机制
异常处理机制 异常处理的两种方式: 编程式异常处理:是指在代码中显式地编写处理异常的逻辑。它通常涉及到对异常类型的检测及其处理,例如使用 try-catch 块来捕获异常,然后在 catch 块中编写特定的处理代码,或者在 f…...
UDS诊断、ECU刷写、自动化测试、车联网测试、DTC故障注入测试、坏境测试、可靠性测试、压力测试、性能测试等
每日直播时间:(直播方式:腾讯会议) 周一到周五:20:00-23:00 周六与周日:9:00-17:00 向进腾讯会议学习的,可以关注我并后台留言 直播内容ÿ…...
C++的常用容器嵌套
在 C 中,数据结构之间的嵌套是非常常见的,尤其是在处理复杂数据时。以下是几种最常用的数据结构嵌套方式及其典型应用场景的总结: 1. std::vector 嵌套 std::vector 定义:std::vector<std::vector<T>>。用途…...
Mac - Cursor 配置 + GPT 4.0/4.5/o1/o3/Deepseek Api 使用
前言 新换了电脑,所以需要新配置一些环境。已经安装好了Goland,但近期可能有GoJava前端的需求,所以使用Cursor。 除去学校各种奇奇怪怪,这已经是一年多来配置的第4台Windows和第四台Mac的Golang环境了。。。且是自己工作外买的第…...
【数据挖掘】Python基础环境安装配置
【数据挖掘】Python基础环境安装配置 一、摘要二、安装Python3.13.2三、安装Jupyter Notebook四、安装Numpy和Pandas以及matplotlib五、安装scikit-learn库和seaborn库 一、摘要 本文主要介绍如何在Windows上安装Python3.13.2,然后基于该Python版本安装Jupyter not…...
详解string类+迭代器
迭代器 概念:在 C 中,迭代器是访问容器(如数组、列表、向量、字符串等)元素的一种方式。迭代器提供了一种统一的接口,使得你可以使用相同的代码来遍历不同类型的容器。迭代器本质上是一个指针或者指针的封装࿰…...
OpenCV DNN 模块使用指南
OpenCV DNN 模块使用指南 一、模块概述 OpenCV 的 DNN(深度神经网络)模块为开发者提供了强大的深度学习功能,能够加载并运行多种格式的预训练深度学习模型。此模块广泛应用于图像分类、目标检测、语义分割等众多计算机视觉任务。接下来&…...
温度(Temperature)在大模型输出中的作用与底层原理
温度(Temperature)在大模型输出中的作用与底层原理 在深度学习领域,尤其是自然语言处理(NLP)中,大型语言模型(LLM)的输出生成通常依赖于概率分布的采样。温度(temperatu…...
智能汽车图像及视频处理方案,支持视频智能拍摄能力
美摄科技,作为智能汽车图像及视频处理领域的先行者,凭借其卓越的技术实力和前瞻性的设计理念,为全球智能汽车制造商带来了一场视觉盛宴的革新。我们自豪地推出——美摄科技智能汽车图像及视频处理方案,一个集高效性、智能化、画质…...
一文讲清 C++ CRTP(Curiously Recurring Template Pattern,奇异递归模板模式)
CRTP是 C 中的一种模板元编程技术,其核心原理是通过模板继承和静态多态,在编译期实现基类对派生类成员的访问,从而避免运行时虚函数调用的开销。 1. CRTP 的基本结构 CRTP 的核心思想是:基类是一个模板类,其模板参数…...
如何用Function Calling解锁OpenAI的「真实世界」交互能力?(附Node.js 实战)
一、Function Calling:大模型的「手脚延伸器」 1.1 核心定义 Function Calling是OpenAI在2023年6月13日推出的革命性功能(对应模型版本gpt-3.5-turbo-0613和gpt-4-0613),允许开发者通过自然语言指令触发预定义函数,实…...
MySQL:float,decimal(1)
会四舍五入 无符号浮点数 更改321zyy1下的salary 为float类型 decimal:...
基于DrissionPage的DY无水印视频采集
基于DrissionPage的Dy无水印视频采集技术解析 目录 一、项目背景与痛点分析 1.1 典型应用场景1.2 传统方案痛点对比1.3 需求分析流程图二、系统架构设计 2.1 核心架构图2.2 执行流程图解三、开发环境配置 3.1 版本要求3.2 环境搭建指南四、实现流程详解 4.1 主要处理阶段4.2 关…...
yt-dlp工具下载视频使用方法
使用 yt-dlp 下载有土播视频时,可以很容易地同时下载字幕文件。 下面是详细操作说明: 一、下载视频并同时下载字幕: 基础命令: yt-dlp --write-subs 视频链接示例: yt-dlp --write-subs https://www.youdubo.com/wa…...
canvas数据标注功能简单实现:矩形、圆形
背景说明 基于UI同学的设计,在市面上找不到刚刚好的数据标注工具,遂决定自行开发。目前需求是实现图片的矩形、圆形标注,并获取标注的坐标信息,使用canvas可以比较方便的实现该功能。 主要功能 选中图形,进行拖动 使…...
Linux与HTTP报头属性和请求方式
HTTP报头属性、请求方式 本篇介绍 在上一节深入HTTP序列化和反序列化已经详细讲解了HTTP是如何进行序列化和反序列化的,但是上一节对请求报头和响应报头的具体内容并没有做出具体的说明,本节就会基于这个问题继续探讨HttpServer;另外在介绍…...
WordPress漏洞
一,后台修改模板拿WebShell 1,安装好靶场后访问 2,在如图所示的位置选择一个php文件写入一句话木马,我们这里选择在404.php中写入 3,访问404.php 二,上传主题拿WebShell 1,找到如图所示的页面…...
go命令使用
查看配置信息 go env配置go国内源 export GO111MODULEon export GOPROXYhttps://goproxy.cn测试 go install github.com/jesseduffield/lazydockerlatesthttps://github.com/jesseduffield/lazydocker...
uniapp vue3使用uniapp的生命周期
使用uniapp的onLoad等生命周期 // 需要引入 import { onLoad , onShow } from dcloudio/uni-app; // 箭头函数 onLoad(()>{//内容 })使用vue生命周期 vue官方文档:https://cn.vuejs.org/api/options-lifecycle.html import { ref,onMounted } from vue; onMou…...
nginx vue history模式 try_files
server {listen 80;server_name localhost chat.test.com;#配置根目录location / {root /temp/test;#index index.html index.htm;try_files $uri $uri/ /index.html;add_header Content-Security-Policy upgrade-insecure-requests;}} https://blog.csdn.net/xutongbao/…...
【css酷炫效果】纯CSS实现悬浮弹性按钮
【css酷炫效果】纯CSS实现悬浮弹性按钮 缘创作背景html结构css样式完整代码效果图 想直接拿走的老板,链接放在这里:https://download.csdn.net/download/u011561335/90492020 缘 创作随缘,不定时更新。 创作背景 刚看到csdn出活动了&…...
MySQL自动化配置工具开发:探索如何用脚本实现MySQL一键安装与配置,提升运维效率
引言 MySQL作为最流行的开源关系型数据库之一,广泛应用于各类业务场景。然而,手动安装和配置MySQL不仅耗时,还容易出错。为了提高运维效率,开发一款MySQL自动化配置工具显得尤为重要。本文将探索如何通过脚本实现MySQL的一键安装与配置,并提供具体的配置脚本文档和关键参…...
如何查看安卓版本号的方法(例如查看是13、12、11、10...)
开发过程中需要了解到安卓版本号是多少,那么以下有三种方法可以知晓安卓手机的Android版本号。 方法1:手机设置直接查看 1.打开【设置】 --> 滑动到手机最底部 --> 点击【关于手机】或 【系统】--> 选择【Android版本】 2.直接查看版本号&am…...
ubuntu 解挂载时提示 “umount: /home/xx/Applications/yy: target is busy.”
问题如题所示,我挂载一个squanfs文件系统到指定目录,当我使用完后,准备解挂载时,提示umount: /home/xx/Applications/yy: target is busy.,具体的如图所示, 这种提示通常是表明这个路径的内容正在被某些进…...
Java XML与JSON相互转换详解
目录 一、为什么需要XML与JSON转换二、使用Jackson库进行转换1. 添加依赖2. XML转JSON3. JSON转XML三、注意事项在现代软件开发中,数据格式的转换是一项常见的任务,特别是在处理不同系统或服务之间的数据交换时。XML(可扩展标记语言)和JSON(JavaScript对象表示法)是两种广…...
[AI速读]用持续集成(CI)优化芯片验证环境:Jenkins与EDA工具的实战指南
在芯片验证中,回归测试(Regression Test)是确保设计稳定性的关键步骤。但随着设计复杂度增加,手动管理海量测试用例、分析日志和覆盖率数据变得异常耗时。本文将介绍如何利用持续集成(CI)工具Jenkins,结合EDA验证环境(如Cadence vManager),实现自动化测试与结果分析,…...
Java-SpringBootWeb入门、Spring官方脚手架连接不上解决方法
一. Spring 官网:Spring | Home Spring发展到今天已经形成了一种开发生态圈,Spring提供了若干个子项目,每个项目用于完成特定的功能(Spring全家桶) Spring Boot可以帮助我们非常快速的构建应用程序、简化开发、提高效率 。 二. Spring Boot入…...
WEB攻防-PHP反序列化-字符串逃逸
目录 前置知识 字符串逃逸-减少 字符串逃逸-增多 前置知识 1.PHP 在反序列化时,语法是以 ; 作为字段的分隔,以 } 作为结尾,在结束符}之后的任何内容不会影响反序列化的后的结果 class people{ public $namelili; public $age20; } var_du…...
Android第五次面试总结(网络篇)
一、引言:为什么需要 DNS? 在浏览器输入www.example.com的瞬间,一场跨越全球的数字接力赛悄然启动。DNS(域名系统)如同互联网的 “电话号码簿”,将人类可读的域名转化为机器可识别的 IP 地址。本文将以工程…...
全网首创/纯Qt/C++实现国标GB28181服务/实时视频/云台控制/预置位/录像回放和下载/事件订阅/语音对讲
一、前言说明 用纯Qt来实现这个GB28181的想法很久了,具体可以追溯到2014年,一晃十年都过去了,总算是整体的框架和逻辑都打通了,总归还是杂七杂八的事情多,无法静下心来研究具体的协议,最开始初步了解协议后…...
详解MySQL的事务实现机制
MySQL事务实现机制 1. 锁机制2. Redo Log(重做日志)3. Undo Log(撤销日志)4. MVCC(多版本并发控制)综合事务处理流程 在MySQL中(主要以InnoDB为例),事务的实现依赖于多个…...
什么是 BA ?BA怎么样?BA和BI是什么关系?
前几天有朋友在评论区提到了BA这个角色,具体是干什么的,我大概来说一下。 什么是BA BA 英文的全称是Business Analyst,从字面上意思就是商业分析师,做过商业智能BI项目的应该比较了解。实际上以我个人的经验,BA 的角…...
Junit在测试过程中的使用方式,具体使用在项目测试中的重点说明
JUnit 是一个广泛使用的 Java 单元测试框架,主要用于编写和运行可重复的测试。以下是 JUnit 在项目测试中的使用方式和重点说明: 1. 基本使用 场景:测试一个简单的 Java 类。 示例: import org.junit.Test; import static org.junit.Assert.*;public class CalculatorTe…...