Ruby
 Computer >> コンピューター >  >> プログラミング >> Ruby

Ruby Sequel Gemの使用方法(例付き)

続編とは何ですか?

Sequelは、Railsを必要とせずにデータベースにアクセスできるようにする宝石です。

さまざまな方法でデータベースに接続できます。

ほとんど2つ

  • 生のSQLコマンドを送信することによって
  • ORMを使用する

生のSQLとMySQLデータベースを使用した例を次に示します。

require 'mysql2'

client  = Mysql2::Client.new(host: "localhost")

results = client.query("SELECT * FROM users WHERE age > 21")

結果は?

データを含むハッシュの配列。

オブジェクト指向の方法でデータを処理する場合は、結果をオブジェクトにする必要があります。

これは、ORMが行うことの大きな部分です。

ORMとは何ですか?

ORMは「Object-Relational-Mapping」の略です。

SQLの発声にちなんで名付けられた続編 (データベースのクエリ言語)はORMです。

使い方を見つけましょう!

続編の例:データベースへの接続

Sequelの使用を開始する最初のステップは、データベースに接続することです。

ここに例があります

require 'sequel'

DB = Sequel.sqlite('/tmp/testing.db')

これにより、Sequel::Databaseが作成されます オブジェクト&それをDBに割り当てます 。

ここではSQLite3データベースを使用しています。

ただし、他のユーザーを使用することはできます

  • Sequel.postgres
  • Sequel.mysql2
  • Sequel.oracle

次は何ですか?

データを保存するためのテーブルを作成する必要があります。

作成方法は次のとおりです

unless DB.table_exists?(:fruits)
  DB.create_table :fruits do
    primary_key :id

    column :name, String
    column :amount, Integer
  end
end

使用できる移行システムがあります。

ただし、オプション

これで、データの追加とデータベースのクエリを開始する準備が整いました。

続編データセットの使用方法

データベース上の特定のテーブルと対話するには、データセットオブジェクトが必要です。

入手方法は次のとおりです

table = DB[:fruits]
# Sequel::SQLite::Dataset

すばらしい!

これで、insertを使用していくつかのレコードを追加できます メソッド。

このように

table.insert(name: "Orange", amount: 10)
table.insert(name: "Apple", amount: 2)
table.insert(name: "Banana", amount: 7)

カウントを取得しましょう

table.count
# 3

データセット内のすべてのエントリを取得しましょう

table.all
# [
#   { id: 1, name: "Orange", amount: 10 },
#   { id: 2, name: "Apple", amount: 2 },
#   { id: 3, name: "Banana", amount: 7 }
# ]

ねえ!

これはハッシュの配列のように見えます。

そうですね。

それがまさにこれです。

Sequel モデルなしでデータベースにクエリを実行できます。

ただし、モデルを使用できます

方法は次のとおりです…

続編でモデルを使用する方法

Sequel モデルはActiveRecordによく似ています モデル。

ここに例があります

class Fruit < Sequel::Model
end

モデルはデータセットとまったく同じように動作しますが、結果をモデルクラスにラップします。

ご覧ください

Fruit.first
# Fruit @values={:id=>1, :name=>"Orange", :amount=>10}

同じSequel::Datasetを使用できます メソッド。

したがって、ここには「魔法」はありません。

さらにいくつかの例

Fruit.map(:name)
# ["Orange", "Apple", "Banana"]

Fruit.where(name: "Apple").or(amount: 10).map(:name)
# ["Orange", "Apple"]

Fruit.first[:amount]
# 10

とてもいいです!

続編とActiveRecord

これで、Sequelのすばらしさを学びました。 つまり、ActiveRecordとどのように比較されるのか疑問に思われるかもしれません。 。

ええと、ActiveRecord RailsのデフォルトのORMです。

そしてRailsは本当に コンベンションが好きです。

したがって、ActiveRecordを置き換える価値はないと思います。 Sequelを使用 Railsアプリで。

ただし。

Sinatraなどの別のフレームワークを使用している場合は、Sequel 素晴らしい選択です!

概要

ORM(この場合はSequel Ruby gem)を使用してRubyでデータベースを操作する方法を学びました。

今度はこれを試して楽しんでください!

読んでくれてありがとう。


  1. Rubyでファイルを読み書きする方法(例付き)

    今日は、Rubyでファイルを読み書きして、コンテンツを抽出し、新しいファイルを作成し、必要な情報を見つける方法を学びます。 これから説明します : コンテンツ 1Rubyでファイルを読み取る方法 2Rubyでファイルに書き込む方法 3つのRubyファイルメソッド 4つのディレクトリ操作 5FileUtilsモジュールの使用方法 6まとめ 6.1関連 やってみましょう! Rubyでファイルを読み取る方法 次のようにRubyでファイルを読み取ることができます: ファイルを開く 、open メソッド。 ファイルを読む 、ファイル全体、行ごと、または特定のバイト数。 ファイルを

  2. Linuxでwatchコマンドを使用する方法と例

    Linuxのwatchコマンドは1つのことを行います。コマンドを繰り返し、結果を繰り返し出力して、変更を監視できるようにします。使用方法は次のとおりです。 watchコマンド構文 watchコマンドの構文は次のとおりです。 watch OPTIONS COMMAND 注: オプション 以下の表のオプションのリストである必要があります。これにより、ウォッチのデフォルトの動作が変更されます。 コマンド コマンド 監視するコマンドです 繰り返し実行する必要があります。これは、出力を監視します 見る 中断されるまで実行されます(したがって、 CTRL+Cを押して終了します ) オプション 時