alpersist:crud
no way to compare when less than two revisions
差分
このページの2つのバージョン間の差分を表示します。
— | alpersist:crud [2019/02/12 00:06] (現在) – 作成 - 外部編集 127.0.0.1 | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== CRUD ====== | ||
+ | |||
+ | SQLiteを例に、コントローラ用のmain.rbを使って説明します。 | ||
+ | |||
+ | この例では、デフォルト(action_index)で全件リストを簡易表示します。 | ||
+ | |||
+ | <code ruby main.rb> | ||
+ | require ' | ||
+ | DSN = "/ | ||
+ | |||
+ | # あらかじめテーブルを作っておいてください。 | ||
+ | # create table person(id integer, name text, age integer); | ||
+ | |||
+ | class PersistTestController < AlController | ||
+ | def initialize() | ||
+ | @db = AlPersistSqlite.connect( DSN ) | ||
+ | @person = @db.table( " | ||
+ | end | ||
+ | |||
+ | def action_index() | ||
+ | @person.all.each {|data| | ||
+ | puts data.values, | ||
+ | } | ||
+ | end | ||
+ | |||
+ | def action_c() | ||
+ | # データを引数で与えて保存 | ||
+ | result = @person.create({ :id=>1, : | ||
+ | puts @person.values, | ||
+ | |||
+ | # データをアトリビュート(values)に個別に設定してから保存 | ||
+ | @person[: | ||
+ | @person[: | ||
+ | @person[: | ||
+ | result = @person.create() | ||
+ | puts @person.values, | ||
+ | |||
+ | # データをアトリビュート(values)に一度に設定してから保存 | ||
+ | @person.values = {:id=>3, : | ||
+ | result = @person.create() | ||
+ | puts @person.values, | ||
+ | end | ||
+ | |||
+ | # キーを指定してデータを読み込み、内部(@values) に保持する。 | ||
+ | # 引数には、プライマリキー以外の値が含まれていてもよく、単に無視される。 | ||
+ | def action_r() | ||
+ | result = @person.read({ :id=>3 }) | ||
+ | if result | ||
+ | puts @person.values | ||
+ | else | ||
+ | puts " | ||
+ | end | ||
+ | end | ||
+ | |||
+ | def action_u() | ||
+ | # データを引数で与えて更新 | ||
+ | result = @person.update({ :id=>1, :age=>20 }) | ||
+ | puts @person.values, | ||
+ | |||
+ | # createと同様に、valueに一度に設定、個別に設定をしてから | ||
+ | # @person.update() することもできる。 | ||
+ | end | ||
+ | |||
+ | def action_d() | ||
+ | # プライマリキーを指定して削除 | ||
+ | result = @person.delete({ :id=>1 }) | ||
+ | puts @person.values, | ||
+ | end | ||
+ | end | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===== Create ===== | ||
+ | |||
+ | <code ruby> | ||
+ | def action_c() | ||
+ | result = @person.create({ :id=>1, : | ||
+ | </ | ||
+ | |||
+ | http:// | ||
+ | |||
+ | * この例では、createメソッドの引数で、保存するデータを与えています。 | ||
+ | |||
+ | <code ruby> | ||
+ | @person[: | ||
+ | @person[: | ||
+ | @person[: | ||
+ | result = @person.create() | ||
+ | </ | ||
+ | |||
+ | * データをアトリビュート(values)に個別に設定してから保存する例です。 | ||
+ | * createメソッドの引数は、空にします。 | ||
+ | |||
+ | <code ruby> | ||
+ | @person.values = {:id=>3, : | ||
+ | result = @person.create() | ||
+ | </ | ||
+ | |||
+ | * 全アトリビュートを一度に指定する例です。 | ||
+ | |||
+ | |||
+ | |||
+ | ===== Read ===== | ||
+ | |||
+ | <code ruby> | ||
+ | def action_r() | ||
+ | result = @person.read({ :id=>3 }) | ||
+ | </ | ||
+ | |||
+ | http:// | ||
+ | |||
+ | * この例では、readメソッドの引数としてプライマリキーのidを与えて、そのキーを持つレコードを読んでいます。 | ||
+ | * 読んだデータは、オブジェクトの@valuesアトリビュートにhashで保存されます。 | ||
+ | * @person[: | ||
+ | |||
+ | |||
+ | |||
+ | ===== Update ===== | ||
+ | |||
+ | <code ruby> | ||
+ | def action_u() | ||
+ | result = @person.update({ :id=>1, :age=>20 }) | ||
+ | </ | ||
+ | |||
+ | http:// | ||
+ | |||
+ | * プライマリキーと更新するデータを含むhashを引数で与えて、レコードを更新します。 | ||
+ | * createメソッドと同様に、あらかじめvalueに値を設定してから、update()と引数なしで実行することもできます。 | ||
+ | |||
+ | |||
+ | |||
+ | ===== Delete ===== | ||
+ | |||
+ | <code ruby> | ||
+ | def action_d() | ||
+ | result = @person.delete({ :id=>1 }) | ||
+ | </ | ||
+ | |||
+ | http:// | ||
+ | |||
+ | * プライマリキーを含むhashを引数で与えて、レコードを削除します。 | ||
+ | * createメソッドと同様に、あらかじめvalueに値を設定してから、delete()と引数なしで実行することもできます。 | ||
+ | |||
+ | |||
alpersist/crud.txt · 最終更新: 2019/02/12 00:06 by hirohito