Drkcore

04 12 2012 Haskell Tweet

HaskellでSQLiteにアクセスする

Haskell力をあげるために、少しの間Pythonを封印してみることにした(職場で)。

いつもならSQLAlchemyを使うところでHDBCを使っているが、本を読んで分かった気になっていただけだったと思い知らされた。

使ってみてDBIっぽいなぁと思ったらゆるく参考にしているらしい

HDBC is modeled loosely on Perl's DBI interface http://search.cpan.org/~timb/DBI/DBI.pm, though it has also been influenced by Python's DB-API v2, JDBC in Java, and HSQL in Haskell. Database.HDBC

結果のフェッチの仕方を調べてみると用途に応じて色々なやり方で結果を返すことができるようになっていた。

  • listで返すかassociation listで返すか、それともMapで返すか
  • 正格、非性格
  • 全てのrowを返すか、一つを返すか
  • SQLValue型かMaybe String型で返すか

必ず答えが返ってくるのが分かっているなら、Maybe Stringで返してfromJustでstringにすればいい。自分のブログ(Flask製)のdatabaseを使ってみる。

import Database.HDBC
import Database.HDBC.Sqlite3
import Data.Maybe

main = do
  conn <- connectSqlite3 "/Users/kzfm/blog.db"
  stmt <- prepare conn "select title from entry"
  execute stmt []
  results <- sFetchAllRows stmt
  mapM_ (putStrLn . fromJust) $ concat results

RWHの日本語版のEpubかmobiが欲しいなぁ。

ProductName Real World Haskell―実戦で学ぶ関数型言語プログラミング
Bryan O'Sullivan
オライリージャパン / 3990円 ( 2009-10-26 )


About

  • もう5年目(wishlistありマス♡)
  • 最近はPythonとDeepLearning
  • 日本酒自粛中
  • ドラムンベースからミニマルまで
  • ポケモンGOゆるめ

Tag

Python Deep Learning javascript chemoinformatics Emacs sake and more...

Ad

© kzfm 2003-2021