良い加減Goでmysqlに接続するときにDSNを直書きするのはやめない?
4423 ワード
よく見るDB接続例
Go言語を用いてmysqlに接続する際、DBの情報を文字列で直書きしているケースを良くみる
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
func main(){
db, err := sql.Open("mysql", "user:password@tcp(localhost:3306)/db?charset=utf8&parseTime=true")
// 以下省略
}
今回紹介したいDB接続例
mysqlパッケージにはDSNを組み立てる用のメソッドが用意されているのでそちらを利用するほうが楽だと感じている
import (
"database/sql"
"time"
"github.com/go-sql-driver/mysql"
)
func connectDB() *sql.DB {
jst, err := time.LoadLocation("Asia/Tokyo")
if err != nil {
// エラーハンドリング
}
c := mysql.Config{
DBName: "db",
User: "user",
Passwd: "password",
Addr: "localhost:3306",
Net: "tcp",
ParseTime: true,
Collation: "utf8mb4_unicode_ci",
Loc: jst,
}
db, err := sql.Open("mysql", c.FormatDSN())
// 以下省略
}
個人的にこの関数の存在を知る前には毎度毎度接続情報の記載順を調べていたが、この関数を利用するようになってからはかなり楽に記載出来るようになったのでオススメ
Author And Source
この問題について(良い加減Goでmysqlに接続するときにDSNを直書きするのはやめない?), 我々は、より多くの情報をここで見つけました https://zenn.dev/mstn_/articles/75667657fa5aed著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol