当前位置: 首页 > news >正文

erlang学习: Mnesia Erlang数据库2

Mnesia数据库增加与查询学习

-module(test_mnesia).-record(shop, {item, quantity, cost}).
-record(cost, {name, price}).
-record(design, {info, plan}).
%% API
-export([insert/3,select/1,start/0]).
start() ->mnesia:start().insert(Name, Quantity, Cost) ->Row = #shop{item = Name, quantity = Quantity, cost = Cost},F = fun() ->mnesia:write(Row)end,mnesia:transaction(F).select() ->qlc:q([X || X <- mnesia:table(shop)]).

能够插入但是不能查询
请添加图片描述

需要对do函数进行实现,才能展示出数据库中的数据,do函数在书上20.4.3有相应实现

-module(test_mnesia).
-include_lib("stdlib/include/qlc.hrl").-record(shop, {item, quantity, cost}).
%% API
-export([insert/3,select/0,start/0,do_this_once/0]).
start() ->mnesia:start().insert(Name, Quantity, Cost) ->Row = #shop{item = Name, quantity = Quantity, cost = Cost},io:format("inserting ~p~n", [Row]),F = fun() ->mnesia:write(Row)end,mnesia:transaction(F).select() ->do(qlc:q([X || X <- mnesia:table(shop)])).do(Q) ->F  = fun() ->qlc:e(Q)end,{atomic,Val} = mnesia:transaction(F),Val.

实现do函数后的代码运行截图
请添加图片描述

相关文章:

erlang学习: Mnesia Erlang数据库2

Mnesia数据库增加与查询学习 -module(test_mnesia).-record(shop, {item, quantity, cost}). -record(cost, {name, price}). -record(design, {info, plan}). %% API -export([insert/3,select/1,start/0]). start() ->mnesia:start().insert(Name, Quantity, Cost) ->…...

电脑文件怎么备份?推荐6个高效便捷的文件备份的方法

在日常使用电脑的过程中&#xff0c;数据备份是一项至关重要的任务。无论是个人用户还是企业用户&#xff0c;都需要确保重要文件的安全性和可恢复性。 以下是推荐的六个高效便捷的文件备份方法&#xff0c;帮助你轻松守住你的文档安全。 1. 使用USB存储设备 USB存储设备如U盘…...

Procdump抓ToDesk密码

目录 前言 1.工具教程 2.转储数据 3.密码获取 4.总结 前言 本文是因为在公众号上看到一篇文章随想着实战中利用ToDesk秀操作失败后&#xff0c;实验环境成功复现后写下。ProcDump[1] 是一个命令行实用工具&#xff0c;其主要用途是监视应用程序的 CPU 峰值&#xff0c;并在…...

ESP8266下载固件→连接阿里云

一、工具准备 1、ESP8266Wifi模块 2、ESP8266下载器 ESP8266-01模块 二、固件配置 CH340串口工具-烧录ESP8266-01固件_esp8266 ch340烧录-CSDN博客文章浏览阅读444次&#xff0c;点赞6次&#xff0c;收藏3次。CH340会有供电不足的问题&#xff0c;因此需要外部供电_esp…...

20240911软考架构-------软考156-160答案解析

每日打卡题156-160答案 156、NoSQL整体框架分为4层&#xff0c;由下至上分为数据持久层、数据分布层、数据逻辑模型层和&#xff08;1&#xff09;。&#xff08;2&#xff09;定义了数据的存储形式。&#xff08;3&#xff09;定义了数据是如何分布的。&#xff08;4&#xf…...

工厂模式与策略模式(golang示例)

一、工厂模式简介 工厂模式是一种创建型设计模式&#xff0c;主要用于封装对象的创建过程。通过使用工厂模式&#xff0c;客户端代码无需直接实例化对象&#xff0c;而是通过工厂类来创建对象。这样可以将对象的创建与使用分离&#xff0c;从而提高代码的灵活性。 1.1 工厂模…...

批量视频如何做成一个二维码(分步骤教程)

原创教程&#xff0c;阿酷TONY&#xff0c;2024.9.11&#xff0c;湖南长沙 批量视频如何做成一个二维码&#xff08;分步骤教程&#xff09;&#xff0c;场景应用&#xff1a; 1. 一批视频需要按组分类&#xff0c;生成一个二维码&#xff0c;实现扫一个二维码&#xff0c;观看…...

OpengGL教程(三)---使用VAO和VBO方式绘制三角形

本章参考官方教程&#xff1a;learnopengl-cn VertexShader.glsl #version 330 core layout(location 0) in vec3 position; layout(location 1) in vec3 color; uniform mat4 projection; // 投影矩阵 out vec4 ourColor; void main() {gl_Position projection * vec4(p…...

【单片机开发】单片机常用开发工具

【前言】 在嵌入式系统领域&#xff0c;单片机&#xff08;Microcontroller, MCU&#xff09;作为核心组件&#xff0c;广泛应用于智能家居、工业控制、汽车电子等众多领域。而单片机开发工具&#xff0c;则是开发者们实现创意、解决问题的重要助手。本文主要讲述目前主流的单…...

一、计算机网络的体系结构

1.1 计算机网络的组成 1&#xff09;从组成部分上分为&#xff1a;硬件、软件、协议。硬件是指主机、通信链路、交换设备和通信处理机组曾。软件包括各种实现资源共享的软件以及各种软件工具&#xff08;如网络操作系统、邮件收发程序、FTP程序、聊天软件&#xff09;。 2&…...

C语言补习课——文件篇

来源&#xff1a;黑马程序员 第157讲 C语言操作文件概述 读取文件&#xff1a;输入流 写文件&#xff1a;输出流 读写的方向判断取决与参照&#xff0c;一般我们站在程序的角度判断读写方向。 第158讲 路径 基本概念 路径就是指文件在电脑中的位置&#xff0c;eg&#xf…...

【可测试性实践】C++ 单元测试代码覆盖率统计入门

引言 最近在调研C工程怎么做单元测试和代码覆盖率统计&#xff0c;由于我们工程有使用Boost库&#xff0c;尝试使用Boost.Test来实现单元测试并通过Gcov和Lcov来生成代码覆盖率报告。本文记录完整的搭建测试Demo&#xff0c;希望能带来一定参考。 常用C单测框架对比 特性Goo…...

C++笔记---list

1. list的介绍 list其实就是就是我们所熟知的链表&#xff08;双向循环带头结点&#xff09;&#xff0c;但其是作为STL中的一个类模板而存在。 也就是说&#xff0c;list是可以用来存储任意类型数据的顺序表&#xff0c;既可以是内置类型&#xff0c;也可以是自定义类型&…...

JavaWeb开发中为什么Controller里面的方法是@RequestMapping?

在Java Web开发中&#xff0c;尤其是在使用Spring MVC框架时&#xff0c;RequestMapping注解被广泛应用于Controller层的方法上&#xff0c;这是因为RequestMapping是Spring MVC提供的一个核心注解&#xff0c;用于将HTTP请求映射到相应的处理器类或处理器方法上。通过这种方式…...

若依移动版使用微信小程序打开失败

现象 解决办法&#xff1a;删掉自带的appid...

精准控图工具 Concept Sliders:超好用的 控制 Lora 适配器

Concept Sliders 你有没有遇到这样的情况&#xff1f;你花费大量时间制作提示和寻找种子&#xff0c;以使用文本到图像模型生成所需的图像。但是&#xff0c;你还需要对生成图像中的属性强度&#xff08;如眼睛大小或照明&#xff09;进行更细致、更精细的控制。修改提示会破坏…...

【EI会议征稿通知】第四届材料工程与应用力学国际学术会议(ICMEAAE 2025)

第四届材料工程与应用力学国际学术会议&#xff08;ICMEAAE 2025&#xff09; 2025 4th International Conference on Materials Engineering and Applied Mechanics 本次会议将重点讨论材料科学、应用力学等领域的最新研究进展与发展趋势。会议旨在为国内外从事这些领域研究…...

Hadoop安全之Knox

Apache Knox 是一个 REST API 网关&#xff0c;为 Hadoop 集群提供安全的访问方式。Knox 提供了一层保护&#xff0c;简化了对 Hadoop 生态系统&#xff08;如 HDFS、YARN、Hive、HBase 等&#xff09;中各个组件的访问&#xff0c;并通过单点登录 (SSO)、认证、授权和审计功能…...

SprinBoot+Vue应急信息管理系统的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平台Java领域优质…...

索尼研究的AI部门将与AI新加坡合作开发大型语言模型

索尼研究公司签署了一项合作协议&#xff0c;以帮助测试和优化东南亚语言一网通&#xff08;SEA-LION&#xff09;人工智能&#xff08;AI&#xff09;模型&#xff0c;重点关注印度语言。 索尼研究公司的AI部门将与负责开发AI新加坡&#xff08;AISG&#xff09;的公司合作&a…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

Caliper 配置文件解析:fisco-bcos.json

config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...

Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storms…...

安卓基础(Java 和 Gradle 版本)

1. 设置项目的 JDK 版本 方法1&#xff1a;通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分&#xff0c;设置 Gradle JDK 方法2&#xff1a;通过 Settings File → Settings... (或 CtrlAltS)…...

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成&#xff0c;具体方法取决于设备类型&#xff08;如USB麦克风、3.5mm接口麦克风或HDMI音频输入&#xff09;。以下是详细指南&#xff1a; 1. 连接音频输入设备 USB麦克风/声卡&#xff1a;直接插入树莓派的USB接口。3.5mm麦克…...

【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道

文/法律实务观察组 在债务重组领域&#xff0c;专业机构的核心价值不仅在于减轻债务数字&#xff0c;更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明&#xff0c;合法债务优化需同步实现三重平衡&#xff1a; 法律刚性&#xff08;债…...

使用SSE解决获取状态不一致问题

使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件&#xff0c;这个上传文件是整体功能的一部分&#xff0c;文件在上传的过程中…...