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: 未分類