Я пытаюсь создать структуру базы данных postgresql для автоматизации системы в Голанге.
Этот код работает;
package main
import (
"database/sql"
"fmt"
_ "github.com/lib/pq"
)
func checkError(err error){
if err!=nil{
panic(err)
}
}
const (
host = "localhost"
port = 5432
user = "postgres"
password = "123"
dbname = "DatabaseName"
)
func main() {
psqlInfo := fmt.Sprintf("host=%s port=%d user=%s "+
"password=%s dbname=%s sslmode=disable",
host, port, user, password, dbname)
db, err := sql.Open("postgres", psqlInfo)
checkError(err)
err = db.Ping()
checkError(err)
defer db.Close()
fmt.Println("Successfully connected!")
}
Результат: Успешно подключено!
Но когда я пытаюсь создать структуру, система выдает ошибку;
package main
import (
"database/sql"
"fmt"
_ "github.com/lib/pq"
)
func checkError(err error){
if err!=nil{
panic(err)
}
}
type Database struct{
host, port, user, password, dbname string
db *sql.DB
}
func(d *Database) Open(){
psqlInfo := fmt.Sprintf("host=%s port=%d user=%s "+"password=%s dbname=%s sslmode=disable", d.host, d.port, d.user, d.password, d.dbname)
db, err := sql.Open("postgres", psqlInfo)
checkError(err)
d.db = db
}
func(d *Database) IsOpened() {
checkError(d.db.Ping())
}
func main() {
a := Database{host: "localhost", port: "5432", user: "postgres", password: "123", dbname: "DatabaseName"}
a.Open()
a.IsOpened()
}
Результат: panic: dial tcp: lookup tcp /%! D (string= 5432): getaddrinfow: указанный класс не найден.
маршрут 1 [выполняется]: main.checkError (...) /main.go:11
main. (*База данных) .IsOpened (...) /main.go:28 main.main () /main.go:34 + 0xcc