タグ

sqlとgolangに関するdelegateのブックマーク (5)

  • Goのsql.DBは、いつプールに戻しているのか

    はじめに 鍵を閉め忘れたような気がして心配になるように、リソースを後始末していたか心配になることはありませんか。 「習慣的にdeferでCloseしてるからリークしないはずたけど。あれ?トランザクションはしてなかったかも。ん?Closeないの!?」 Goの標準ライブラリの database/sql で中心となる sql.DB ではデフォルトでコネクションプールが使われるようになっていて明示的な操作は不要です。 ではいったい、どのタイミングでプールに返却されているのか、パターンを整理してみました。 準備 挙動の確認でINSERTやSELECTを実行するため、PostgreSQLに簡易なテーブルを作成しました。 CREATE TABLE shop ( id serial PRIMARY KEY, name text NOT NULL, created_at timestamp with tim

    Goのsql.DBは、いつプールに戻しているのか
  • goquを駆使してgoでSQL構築も構造体マッピングもRDBテストもやる - エムスリーテックブログ

    【Unit4 ブログリレー6日目】 こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。 最近まで開発していたm3ラウンジでは、goからRDBを利用していました。 m3ラウンジでは、SQLの組みやすさやテストのしやすさの観点で検討した結果、goquを採用しましたので、 そこで得られた知見とその実装例を紹介します。 これから試してみる方(と将来m3ラウンジの開発に新たに入ることになったメンバー)の参考になるように、サンプルコードも説明も多くなってしまいかなり長いです。 お時間ある時にお読みいただければ。 名古屋城は、日の城のひとつ。尾張国愛知郡名古屋(現在の愛知県名古屋市中区丸・北区名城)にある。文には特に関係ありません。 m3ラウンジ goqu 実例 modelの構造体 mapper mapperの実装 goquのSQLの結果から構造体へのマッピング

    goquを駆使してgoでSQL構築も構造体マッピングもRDBテストもやる - エムスリーテックブログ
  • `*sql.DB` を観察する #golang | Wantedly Engineer Blog

    Photo by Abo Ngalonkulu on UnsplashPeople tribe / Backend squad の @izumin5210 です。もう12月ですね。自分は Advent Calendar に登録しすぎて後悔するのが得意です。 この記事は Go3 Advent Calendar 2019 の4日目です。 TL;DRSQL のメトリクス・トレースを収集したいは driver.Driver をラップするのが常套手段コネクション取得までの待ち時間まで見たい場合は、DBStats を見るのがよさそうことの発端Wantedly では Application Performance Monitoring に New Relic を利用しています。New Relic APM には様々な機能が存在しますが、例えばエンドポイントごとに「どの処理でどれくらいの時間がかかっているか

    `*sql.DB` を観察する #golang | Wantedly Engineer Blog
  • GORM で出力されるログの SQL と実行される SQL が違った話 - カミナシ エンジニアブログ

    7月に株式会社カミナシに入社したくらさわです! カミナシでは、現場DXプラットフォーム「カミナシ」の開発をしています! よろしくお願いします!!! きっかけ 検証バージョン 結論 コード書いて確認してみた ドキュメント読んでみた コード読んでみた go-sql-driver/mysql のコード GORM のコード まとめ きっかけ 現在、カミナシの開発では、サーバサイドの言語は Go 、ORマッパーとして 「GORM」 を使い、DB には Amazon Aurora MySQL を使っています。 ある日、開発中に GORM が吐いてくれるログで query を調べていると、アプリケーションの実行中は結果が取れていないのに、その query をコピーして、手動で MySQL に投げると結果が取得できるということがありました。 パッとわからなかったので、それについて調べたことを記事にしてみま

    GORM で出力されるログの SQL と実行される SQL が違った話 - カミナシ エンジニアブログ
  • Goにおける型によってSQLインジェクションを防ぐ方法

    はじめに 2022年のセキュリティ・キャンプ全国大会に講師として参加しました。その際に、Goにおける脆弱性への対策はどうなっているのか調べました。この記事では、github.com/google/go-safeweb/safesqlがどのようにSQLインジェクションを防いでるのかについて解説します。 なお、@rungさんの文書を多いに参考にしております。また、セキュリティ・キャンプで用いた資料はこちらから閲覧できます。 SQLインジェクションとは? 独立行政法人情報処理推進機構(IPA)が公開している安全なウェブサイトの作り方を見ると、SQLインジェクションは以下のように説明されています。 データベースと連携したウェブアプリケーションの多くは、利用者からの入力情報を基にSQL文(データベースへの命令文)を組み立てています。ここで、SQL文の組み立て方法に問題がある場合、攻撃によってデータベ

    Goにおける型によってSQLインジェクションを防ぐ方法
  • 1