2023/4/3(月)

drogoncppを触っていた。データベース周りがなんというか、別に分かれば面倒ではないが、ドキュメントが少なくて厳しい。半端なチュートリアルだけじゃなくてリファレンスを整えてくれ!

main関数の中でdrogon::app().createDbClient()でクライアントをまず作成。drogonのランタイム内に登録される。それからハンドラの中でdrogon::app().getDbClient()で取得する。これだけのことを知るのに死ぬほど苦労した。

クエリの飛ばし方はそれなり丁寧に公式チュートリアルに書いてある。結果はdrogon::orm::Result型で帰ってくるが、これは「連想配列の配列」と考えるのが良さそうだ。result[i][“name”]みたいな感じで各行の各カラムの結果にアクセスできる。中身のデータは.as<T>()や.c_str()で取得する。

クエリの中のプレースホルダはMySQLの場合「?」、postgreSQLの場合$1,$2を使う。こんなところに違いがあるとは初めて知った。

Categories: