| 未選択 / 2010/05/21 (Fri) / 編集 |
[Mac] Apache2 + php5 + SQLite3で少し書いたりしたけど、こんどはRubyでやってみる。
ちなみに、SQLiteというのはデータベースなんだけど、MySQLなんかがどっか特別な場所にデータベースを一括保存すると違い、SQLiteだと任意の(デフォルトではコマンドを実行した)ディレクトリにデータベースのファイルが生成される。
なのでデータベースの移動とかが簡単、このファイルをコピーすればいいだけだからね!ただしやっぱ機能的には劣るんだけどまぁちょっと使うくらいなら問題ない。
とりあえず、必要なパッケージを用意して環境構築できたらGO! (RubyとRubyGemsはすでにインストールされてるものとします。)
ちなみに、SQLiteというのはデータベースなんだけど、MySQLなんかがどっか特別な場所にデータベースを一括保存すると違い、SQLiteだと任意の(デフォルトではコマンドを実行した)ディレクトリにデータベースのファイルが生成される。
なのでデータベースの移動とかが簡単、このファイルをコピーすればいいだけだからね!ただしやっぱ機能的には劣るんだけどまぁちょっと使うくらいなら問題ない。
とりあえず、必要なパッケージを用意して環境構築できたらGO! (RubyとRubyGemsはすでにインストールされてるものとします。)
%sudo yum -y install sqlite sqlite-devel ruby-sqlite3
とりあえずはコマンドラインで動かすテスト
データベースの作成、今回は「test_database.db」というファイル名で作るよ
そしてテーブルを作成してきちんと出来たか確認。
レコードを追加して、selectで確認
SQLiteを修了して、きちんとデータベースのファイルが生成されているか見てみる。
上のようなことをRubyでやるとこんなプログラムになるらしいです。
実行結果はこんな感じ、excute2で列名を表示するテストもついでにやってます。
データベースの作成、今回は「test_database.db」というファイル名で作るよ
%sqlite3 test_database.db
そしてテーブルを作成してきちんと出来たか確認。
sqlite> create table items ( ...> id integer primary key, ...> timestamp text not null, ...> text text ...> ); sqlite> .table items
レコードを追加して、selectで確認
sqlite> insert into items (timestamp, text) values (datetime('now', 'localtime'), 'hoge');
sqlite> select * from items;
1|2010-05-21 15:27:41|hoge
SQLiteを修了して、きちんとデータベースのファイルが生成されているか見てみる。
sqlite>.exit %ls test_database.db
上のようなことをRubyでやるとこんなプログラムになるらしいです。
require 'rubygems' # gem install `sqlite3-ruby した場合
require 'sqlite3'
#データベースを開く(なかったら作る)
db = SQLite3::Database.new("database.db")
time = Time.now.strftime("%Y-%m-%d %X:%M:%S")
name='test name'
text='text test'
#テーブルを作る
sql = < time, :name => name, :text => text}
sql = "insert into items values (:id, :timestamp, :name, :text)"
db.execute(sql, new_item)
#表示
sql_opt = ""
sql = "select * from items #{sql_opt}"
db.execute(sql) {|row|
p row
}
puts '\t ------ \t'
db.execute2(sql) do |row|_
#rowは結果の配列。ただし最初のレコードは列名。
puts row.join("\t")
end
db.close
実行結果はこんな感じ、excute2で列名を表示するテストもついでにやってます。
%ruby db_test.rb ["1", "2010-05-21 15:35:13:35:13", "test name", "text test"] \t ------ \t id timestamp name text 1 2010-05-21 15:35:13:35:13 test name text test
PR
トラックバック
URL :
コメント
