require 'al_persist_sqlite' DSN = "/tmp/datafile.sqlite" # あらかじめテーブルを作っておいてください。 # create table person(id integer, name text, age integer); class PersistTestController < AlController def initialize() @db = AlPersistSqlite.connect( DSN ) @person = @db.table( "person", :id ) end def action_index() @person.all.each {|data| puts data.values, "
" } end def action_c() # データを引数で与えて保存 result = @person.create({ :id=>1, :name=>"Yamaguchi", :age=>18 }) puts @person.values, result, "
" # データをアトリビュート(values)に個別に設定してから保存 @person[:id] = 2 @person[:name] = "Ishikawa" @person[:age] = 20 result = @person.create() puts @person.values, result, "
" # データをアトリビュート(values)に一度に設定してから保存 @person.values = {:id=>3, :name=>"Miyazaki", :age=>33} result = @person.create() puts @person.values, result, "
" end # キーを指定してデータを読み込み、内部(@values) に保持する。 # 引数には、プライマリキー以外の値が含まれていてもよく、単に無視される。 def action_r() result = @person.read({ :id=>3 }) if result puts @person.values else puts "Failed" end end def action_u() # データを引数で与えて更新 result = @person.update({ :id=>1, :age=>20 }) puts @person.values, result, "
" # createと同様に、valueに一度に設定、個別に設定をしてから # @person.update() することもできる。 end def action_d() # プライマリキーを指定して削除 result = @person.delete({ :id=>1 }) puts @person.values, result, "
" end end