Symfoware

Symfowareについての考察blog

elixirからMariaDBに接続する(Mariaex)

Mariaexを使用してMariadhDBに接続してみます。
FreeBSD 10.1、elixir 1.05、MariaDB 10な環境です。


MariaDBの設定



elixirがutf-8で動作するので、MariaDBの設定もutf-8に変更しておきます。
こうしないと、日本語登録で文字化けします。

FreeBSD 10.0にMariaDB 10をインストールする(pkg install使用)





Mariaex



Mariaex

mixでインストールする方法もありますが、
FreeBSDにはパッケージが用意されていました。

pkg installでインストールします。


# pkg install elixir-mariaex







接続とクエリー実行サンプル



sampleデータベースに接続して、テーブルを作成。
データを登録してみます。

・sample.exs


  1. # データベースに接続
  2. {:ok, p} = Mariaex.Connection.start_link(username: "admin", database: "sample")
  3. # テーブル作成
  4. Mariaex.Connection.query(p, "CREATE TABLE test1 (id serial, title text)")
  5. # データの登録
  6. Mariaex.Connection.query(p, "INSERT INTO test1 VALUES(1, 'test')")




elixirコマンドでスクリプトを実行。


# elixir sample.exs




ちゃんとテーブルの作成とデータ登録が行えました。


MariaDB [sample]> select * from test1;
+----+-------+
| id | title |
+----+-------+
| 1 | test |
+----+-------+







データの検索と表示



登録したデータを表示してみます。
戻り値のrowsに結果が設定されています。


  1. # データベースに接続
  2. {:ok, p} = Mariaex.Connection.start_link(username: "admin", database: "sample")
  3. # データの検索
  4. {:ok, result} = Mariaex.Connection.query(p, "SELECT id, title FROM test1")
  5. # 内容を表示
  6. Enum.each(result.rows, fn(row) ->
  7.     [id, title] = row
  8.     
  9.     IO.puts "id:#{id}, title:#{title}"
  10. end)




実行結果


# elixir sample.exs
id:1, title:test







プレースフォルダー



クエリの変数に「?」を指定。
第3引数に、リストで値を指定します。


  1. # データベースに接続
  2. {:ok, p} = Mariaex.Connection.start_link(username: "admin", database: "sample")
  3. # プレースフォルダを使用してのデータ登録
  4. Mariaex.Connection.query(p, "INSERT INTO test1 VALUES(?, ?)", [2, "日本語テスト"])
  5. # データの検索
  6. {:ok, result} = Mariaex.Connection.query(p, "SELECT id, title FROM test1")
  7. # 内容を表示
  8. Enum.each(result.rows, fn(row) ->
  9.     [id, title] = row
  10.     
  11.     IO.puts "id:#{id}, title:#{title}"
  12. end)




実行結果


# elixir sample.exs
id:1, title:test
id:2, title:日本語テスト

関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2015/07/26(日) 21:29:39|
  2. Erlang
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<FreeBSD 10.1 nkfをpkg installでインストールし、ファイルの文字コードを変換する | ホーム | elixir入門 4.Pattern matching>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1765-17c22a65
この記事にトラックバックする(FC2ブログユーザー)