📜  ruby sqlite (1)

📅  最后修改于: 2023-12-03 15:34:45.702000             🧑  作者: Mango

Ruby SQLite

Ruby SQLite 是 Ruby 语言的一个 SQLite 数据库操作库,该库为 SQLite C 语言 API 的一个 Ruby 封装提供了简单易用的接口,方便开发者使用 Ruby 语言快速对 SQLite 数据库进行访问操作。

安装

使用 RubyGems 安装 Ruby SQLite:

gem install sqlite3
连接 SQLite 数据库

连接 SQLite 数据库需要使用 SQLite3 模块,示例代码如下:

require 'sqlite3'

# 连接到数据库
db = SQLite3::Database.new "test.db"

# 执行 SQL 语句
rows = db.execute <<-SQL
  create table numbers (
    name varchar(30),
    val int
  );
SQL
执行 SQL 语句

在 Ruby SQLite 中执行 SQL 语句有两种方式,一种是使用 execute 方法,另一种是使用 prepare 和 execute 方法。下面是两种方式的示例代码:

使用 execute 方法
require 'sqlite3'

db = SQLite3::Database.new "test.db"

# 执行 SQL 语句
rows = db.execute <<-SQL
  select name, val from numbers;
SQL

# 输出查询结果
rows.each do |row|
  puts row.join "\s"
end
使用 prepare 和 execute 方法
require 'sqlite3'

db = SQLite3::Database.new "test.db"

# 使用 prepare 方法创建语句
stm = db.prepare "SELECT * FROM numbers WHERE val > ?"

# 绑定参数并执行语句
stm.bind_params 5
rs = stm.execute

# 输出查询结果
rs.each do |row|
  # 输出结果
end

# 关闭语句
stm.close
使用 Active Record 进行 ORM 操作

Ruby SQLite 还提供了一个 Active Record 样式的 ORM 框架,使得开发者可以更加方便快捷地操作 SQLite 数据库,示例代码如下:

require 'sqlite3'
require 'active_record'

# 连接到数据库
ActiveRecord::Base.establish_connection(
  adapter: 'sqlite3',
  database: 'test.db'
)

# 创建模型
class Number < ActiveRecord::Base
end

# 查询数据
Number.where("val > 5").each do |number|
  puts number.name
end

# 插入数据
Number.create(name: "test", val: 10)

# 更新数据
number = Number.find_by(name: "test")
number.update(val: 20)

# 删除数据
number.destroy
总结

Ruby SQLite 提供了简单、易用、高效的接口让开发者能够快速、方便地对 SQLite 数据库进行访问操作。同时,使用 Ruby SQLite 搭配 ActiveRecord 框架可以实现更加方便快捷的 ORM 操作。如果你使用 Ruby 开发并需要操作 SQLite 数据库,Ruby SQLite 将是一个不错的选择。