BackEnd

gorpを使ってDBを操作する

投稿日:2019年11月7日 更新日:

はじめに

今回の記事では、 gorp を使ってDBを操作する方法を紹介します。

GoのORM

GoでDBにアクセスする場合、今回紹介する gorp の他にも様々な選択肢があります。ORMの比較についてはこちらの記事が参考になります。

gorpの紹介

gorp では、シンプルなインタフェースを通してCRUD操作、構造体へのマッピング、トランザクションなどの処理ができます。

insert、update、deleteおよびPK指定のselectの場合、クエリを書くことなく処理できるほか、SQLを書いて実行することもできます。

他にも、テーブルの作成やインデックスを貼ることもできます。

gorpの基本操作

まず初めに、 gorp でのCRUD操作の書き方を見ていきましょう。前提として、以下のような構造体が定義されているものとします。

db:xxx については後ほど説明します。

insert

insertは以下のように記述します。

select

selectは以下のように記述します。

さらに、以下のようにパラメータを map でbindingすることもできます。

1件だけ取得したい場合は以下のように記述します。ただし、1件も該当しない場合もしくは、複数件該当する場合はエラーが返ります。

PKを指定してselectする場合は以下のように記述できます。

update

updateは以下のように記述します。count には更新したレコード数が返ります。

delete

deleteは以下のように記述します。ただし、構造体にPKを定義しておく必要があります。

構造体のmapping

gorpではSQLの実行結果をmappingする構造体をあらかじめ定義しておく必要があります。先ほど定義した構造体をもとに説明します。

db: の次の文字列でbindするカラムを指定します。PKの場合は primarykey を記述します。文字列型の場合は size でサイズを指定できます。Nullを許容しない場合は notnull を記述します。

テーブルの作成

gorpではテーブルを作成する関数が用意されています。以下のように記述します。

さいごに

gorpの基本的な使い方を紹介しました。他にもインデックスの作成やupdateなどのhookなどの機能がありますので、興味がありましたらgo docなどをご覧ください。

おすすめ書籍

スターティングGo言語 (CodeZine BOOKS)  Goプログラミング実践入門 標準ライブラリでゼロからWebアプリを作る impress top gearシリーズ  改訂2版 みんなのGo言語

blog-page_footer_336




blog-page_footer_336




-BackEnd
-,

執筆者:

         

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

Go言語

Go 1.18のWorkspacesモードでマルチモジュール化

1 はじめに2 マルチモジュール構成2.1 非Workspacesモードの場合2.2 Workspacesモードの場合3 go workコマンド3.1 init3.2 edit3.3 sync3.4 ...

Go言語

go 1.24の tool directive でツールを管理する

1 はじめに1.1 これまでのツールの管理方法2 tool directiveを使ってツールを管理する2.1 ツールの追加2.2 ツールの削除3 go tool コマンドでツールを実行する4 さいごに ...

Stripe Connectでダイレクト支払い導入編

1 はじめに2 事前準備3 StripeConnectの導入3.1 stripeパッケージの導入3.2 envの実装4 店舗アカウントの登録4.1 Stripe Connectの設定4.2 Oauth ...

Go言語

Goのfmt.print系関数のまとめ

1 はじめに2 print関数の命名規則3 各print関数の説明3.1 Print(標準出力へ出力)系関数3.2 Sprint(文字列を出力)系関数3.3 Fprint(ファイルへ出力)系関数4 書 ...

laravel logo

Laravelでテストコードを書くには? Featureテスト/Unitテスト

1 はじめに2 FeatureとUnitの使い分け3 テスト用データベースの準備4 Featureテスト4.1 テスト対象のコード4.2 テストコードの実装4.3 テスト結果の検証4.3.1 ステータ ...

フォロー

follow us in feedly

blog-page_side_responsive

2019年11月
 12
3456789
10111213141516
17181920212223
24252627282930

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。