package mypackage import ( "encoding/json" "fmt" "io/ioutil" "log" "os" "database/sql" _ "github.com/lib/pq" ) func LoadConfig(path string) Config { jsonFile, err := os.Open(path) if err != nil { log.Println(err) } defer jsonFile.Close() byteValue, err := ioutil.ReadAll(jsonFile) if err != nil { log.Println(err) } var con Config err = json.Unmarshal(byteValue, &con) if err != nil { log.Println(err) } return con } func OpenDatabase(db Dbstruct) *sql.DB { connstring := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=disable", db.Host, db.Port, db.User, db.Pass, db.Dbname) sqldb, err := sql.Open("postgres", connstring) if err != nil { fmt.Println(err) log.Fatal(err) } err = sqldb.Ping() if err != nil { sqldb.Close() } else { fmt.Println("Database is ready......") } return sqldb } func ExecTable(db *sql.DB, path string) { sqlBytes, err := ioutil.ReadFile(path) if err != nil { fmt.Println(err) log.Fatal(err) } _, err = db.Exec(string(sqlBytes)) if err != nil { fmt.Println(err) log.Println(err) } }
从json配置文件中读取数据库的连接信息。下面这个链接里有go连接sql的参考手册,供大家参考。
Go database/sql tutorial (go-database-sql.org)