実践Haskell のデータベースの使用 データの作成:ユーザーの挿入とツールの貸し出し SQLite、executeコマンド
入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT7(実践Haskell)、LESSON 41(Haskellでのデータベースの使用)、41.4(データの作成:ユーザーの挿入とツールの貸し出し)、データベースに新しいユーザーを追加するのクイックチェック 41-2の解答を求めてみる。
コード
{-# LANGUAGE OverloadedStrings #-}
import Database.SQLite.Simple
withConn :: String -> (Connection -> IO ()) -> IO ()
withConn dbName action = do
conn <- open dbName
action conn
close conn
addUser :: String -> IO ()
addUser userName =
withConn "tools.db"
(\conn -> do
execute conn
"INSERT INTO users (username) VALUES (?)"
(Only userName)
print "user added")
main :: IO ()
main = do
addUser "haskell"
入出力結果(Terminal, Zsh)
% runghc sample02.hs
"user added"
% sqlite3 tools.db
SQLite version 3.36.0 2021-06-18 18:36:39
Enter ".help" for usage hints.
sqlite> select * from users;
1|willkurt
2|haskell
sqlite> .quit
%