ホームページ > バックエンド開発 > Golang > Go でデータベース行をマップに効率的に変換するにはどうすればよいですか?

Go でデータベース行をマップに効率的に変換するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-14 16:11:12
オリジナル
928 人が閲覧しました

How to Efficiently Convert Database Rows to Maps in Go?

database/sql を使用して Go でデータベース行をマップに変換する方法

データベースを操作するとき、多くの場合、データを取得し、 Go アプリケーションで簡単に操作できる形式に変換します。一般的なアプローチの 1 つは、結果の行をマップのスライスに変換することです。ただし、database/sql Rows.Scan 関数には、クエリによって返された列と一致させるために特定の数のパラメータが必要です。

sqlx を使用した行からのマップの作成

Database/SQL パッケージは行をマップのスライスに変換するための直接のサポートを提供しませんが、sqlx パッケージを利用して次のことを行うことができます。プロセスを簡略化します:

import "github.com/jmoiron/sqlx"

db := sqlx.Open("postgres", "user=postgres password=mypassword host=localhost port=5432 dbname=mydb")

places := []Place{}
err := db.Select(&places, "SELECT * FROM place ORDER BY telcode ASC")
if err != nil {
    fmt.Printf(err)
    return
}
ログイン後にコピー

この例では、sqlx を使用して Place テーブルをクエリし、その結果を Place 構造体のスライスに保存しています。 []Place{} を []map[string]interface{} に置き換えて、代わりにマップのスライスを作成することもできます。

注: 可能な限り構造体を使用することをお勧めします。型安全性を提供し、エラーが発生しやすい型アサーションの必要性を排除します。ただし、データベースの構造がわからない場合、または動的データを操作する必要がある場合は、マップのスライスを使用して柔軟性を高めることができます。

以上がGo でデータベース行をマップに効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート