Ruby 教程 之 Ruby 数据库访问 - DBI 教程 10

简介: Ruby 数据库访问 - DBI 教程

Ruby 教程 之 Ruby 数据库访问 - DBI 教程 10

Ruby 数据库访问 - DBI 教程

本章节将向您讲解如何使用 Ruby 访问数据库。Ruby DBI 模块为 Ruby 脚本提供了类似于 Perl DBI 模块的独立于数据库的接口。

DBI 即 Database independent interface,代表了 Ruby 独立于数据库的接口。DBI 在 Ruby 代码与底层数据库之间提供了一个抽象层,允许您简单地实现数据库切换。它定义了一系列方法、变量和规范,提供了一个独立于数据库的一致的数据库接口。

执行事务

事务是一种确保交易一致性的机制。事务应具有下列四种属性:

原子性(Atomicity):事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。
一致性(Consistency):事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态。假如数据库的状态满足所有的完整性约束,就说该数据库是一致的。
隔离性(Isolation):事务的隔离性指并发的事务是相互隔离的,即一个事务内部的操作及正在操作的数据必须封锁起来,不被其它企图进行修改的事务看到。
持久性(Durability):事务的持久性意味着当系统或介质发生故障时,确保已提交事务的更新不能丢失。即一旦一个事务提交,它对数据库中数据的改变应该是永久性的,耐得住任何数据库系统故障。持久性通过数据库备份和恢复来保证。
DBI 提供了两种执行事务的方法。一种是 commit 或 rollback 方法,用于提交或回滚事务。还有一种是 transaction 方法,可用于实现事务。接下来我们来介绍这两种简单的实现事务的方法:

方法 I
第一种方法使用 DBI 的 commit 和 rollback 方法来显式地提交或取消事务:

实例
dbh['AutoCommit'] = false # 设置自动提交为 false.
begin
dbh.do("UPDATE EMPLOYEE SET AGE = AGE+1
WHERE FIRST_NAME = 'John'")
dbh.do("UPDATE EMPLOYEE SET AGE = AGE+1
WHERE FIRST_NAME = 'Zara'")
dbh.commit
rescue
puts "transaction failed"
dbh.rollback
end
dbh['AutoCommit'] = true

目录
相关文章
|
安全 前端开发 JavaScript
某教程学习笔记(一):06、漏洞分析(工具篇)
某教程学习笔记(一):06、漏洞分析(工具篇)
262 0
|
存储 缓存 内存技术
USB容量大小对传输速度影响有多大
USB容量大小对传输速度影响有多大
USB容量大小对传输速度影响有多大
|
Web App开发 安全 数据安全/隐私保护
IP电话交换机WebRTC使用方法一
WebRTC 简介 WebRTC 是网络实时通信的缩写(Web Real-Time Communication), 是一种支 持网页浏览器进行实时语音通话的技术。在 CooVox V2 IP PBX电话交换机 中成功运用该技术实现网 页分机,为企业用户提供了一个直接与客户沟通交流的免费平台。网页分机是指在 Web 浏览器中通过使用 WebRTC 的方式注册的分机号。客户可以通过企业网站直接与企业人员 通话寻求支持。
|
SQL Oracle 关系型数据库
Navicat15安装使用教程全网最细)
Navicat15安装使用教程全网最细)
594 1
Navicat15安装使用教程全网最细)
|
JavaScript 前端开发 安全
如何学好JavaScript:从初学者到专家的学习指南
JavaScript是一门强大的编程语言,用于在网页上创建交互性和动态性。无论你是初学者还是有经验的开发者,学好JavaScript都是一个有价值的追求。这篇文章将指导你如何系统地学习JavaScript,并逐步提升你的技能水平,从初学者到专家。
(10)QWidget的使用(one)
文章介绍了QWidget的使用,包括如何获取和设置QWidget的大小和位置、设置窗口固定大小、限定窗口大小、坐标系统转换、内容边距、鼠标指针形状以及自定义光标的使用。
439 0
(10)QWidget的使用(one)
|
负载均衡 监控 网络协议
TCP四次挥手:为什么四次?原理大揭密!
**TCP四次挥手详解**:客户端发送FIN进入FIN-WAIT-1,服务器回ACK进CLOSE-WAIT;服务器发送FIN,客户端回ACK进TIME-WAIT,等待2MSL确保数据传输完毕,防止新旧连接混淆。四次挥手确保双方完全关闭连接,解决数据丢失问题。过多TIME-WAIT可通过负载均衡、优化关闭顺序或调整系统参数缓解。关注“软件求生”获取更多技术内容!
353 0
|
存储 算法 安全
【11.10】现代密码学1——密码学发展史:密码学概述、安全服务、香农理论、现代密码学
【11.10】现代密码学1——密码学发展史:密码学概述、安全服务、香农理论、现代密码学
476 0
|
NoSQL Redis 数据安全/隐私保护
.net core工具组件系列之Redis—— 第一篇:Windows环境配置Redis(5.x以上版本)以及部署为Windows服务
Cygwin工具编译Redis Redis6.x版本是未编译版本(官方很调皮,所以没办法,咱只好帮他们编译一下了),所以咱们先下载一个Cygwin,用它来对Redis进行编译。
448 0
.net core工具组件系列之Redis—— 第一篇:Windows环境配置Redis(5.x以上版本)以及部署为Windows服务
|
API 异构计算
SurfaceView 和 TextureView
SurfaceView 和 TextureView
684 0