Haskell: MySQLへのアクセス

a0002_009631

ようやくライブラリのインストールができるようになってきたので、「Haskell から MySQL を使う」を参考に、HaskellからMySQLへアクセスするプログラムを書いてみました。

アクセス先のデータベースはPC-KEIBAを使って構築したMySQL上のデータベース。

{-# LANGUAGE OverloadedStrings #-}

import Database.MySQL.Simple

type HorseTuple = (String, String)

data Horse = Horse { toroku :: String, bamei :: String }

instance Show Horse where
  show (Horse toroku bamei) = toroku ++ " " ++ bamei

main :: IO ()
main = do
  printHorseInfo "2005102837"

getConnection :: IO Connection
getConnection = connect defaultConnectInfo { connectDatabase = "pckeiba", connectUser = "XXXX", connectPassword="XXXX" }

printHorseInfo :: String -> IO ()
printHorseInfo horseNumber = do
  conn <- getConnection
  rs <- query conn "select ketto_toroku_bango, bamei from jvd_kyosoba_master where ketto_toroku_bango=?" (Only horseNumber)
  mapM_ putStrLn $ map show $ map getHorse (rs :: [HorseTuple])

getHorse :: HorseTuple -> Horse
getHorse horse = Horse { toroku = fst horse, bamei = snd horse }

出力結果はこんな感じ

2005102837 エスポワールシチー

自前でHorseのshowを実装しているのは「Haskell の print関数 (utf8-string) で日本語を出力」を参考にして。

スポンサーリンク

フォローする

スポンサーリンク