在 Ruby 中,访问数据库的一种方式是使用 DBI(Database Interface)模块。DBI 提供了一种通用的数据库接口,允许 Ruby 程序与不同类型的数据库进行交互,如 MySQL、PostgreSQL 等。以下是一个简单的 DBI 教程,演示如何连接数据库、执行查询和获取结果。

首先,请确保已经安装了 dbi 和 dbd-<your_database> gem,其中 <your_database> 是你要使用的数据库类型,例如 mysql 或 postgres。
gem install dbi
gem install dbd-mysql  # 或者 gem install dbd-pg

连接到数据库
require 'dbi'

# 连接到 MySQL 数据库
db_connection = DBI.connect("DBI:Mysql:your_database:localhost", "username", "password")

# 连接到 PostgreSQL 数据库
# db_connection = DBI.connect("DBI:Pg:dbname=your_database;host=localhost", "username", "password")

puts "Connected to the database."

执行查询
# 执行查询
query = "SELECT * FROM your_table"
result = db_connection.execute(query)

# 获取查询结果
result.each do |row|
  puts row.inspect
end

# 关闭查询
result.finish

插入数据
# 插入数据
insert_query = "INSERT INTO your_table (column1, column2) VALUES (?, ?)"
db_connection.prepare(insert_query) do |stmt|
  stmt.execute("value1", "value2")
end

更新数据
# 更新数据
update_query = "UPDATE your_table SET column1 = ? WHERE column2 = ?"
db_connection.prepare(update_query) do |stmt|
  stmt.execute("new_value", "existing_value")
end

删除数据
# 删除数据
delete_query = "DELETE FROM your_table WHERE column = ?"
db_connection.prepare(delete_query) do |stmt|
  stmt.execute("value_to_delete")
end

断开数据库连接
# 断开数据库连接
db_connection.disconnect
puts "Disconnected from the database."

请根据你使用的数据库类型和设置,调整连接字符串和查询语句中的数据库、表名、列名等信息。这只是一个简单的教程,实际情况可能会根据不同的数据库和需求有所变化。如有其他问题,请随时提问。


转载请注明出处:http://www.zyzy.cn/article/detail/13443/Ruby