Rövid útmutató: Adatok csatlakoztatása és lekérdezése a Go nyelv használatával az Önálló Azure Database for PostgreSQL-kiszolgálón
A KÖVETKEZŐKRE VONATKOZIK: Azure Database for PostgreSQL – Önálló kiszolgáló
Fontos
Azure Database for PostgreSQL – Az önálló kiszolgáló a kivezetési útvonalon van. Határozottan javasoljuk, hogy frissítsen az Azure Database for PostgreSQL rugalmas kiszolgálóra. A rugalmas Azure Database for PostgreSQL-kiszolgálóra való migrálással kapcsolatos további információkért lásd: Mi történik az önálló Azure Database for PostgreSQL-kiszolgálóval?
Ez a rövid útmutató azt ismerteti, hogyan lehet csatlakozni a PostgreSQL-hez készült Azure-adatbázishoz Go nyelven írt kóddal (golang). Bemutatjuk, hogy az SQL-utasítások használatával hogyan kérdezhetők le, illeszthetők be, frissíthetők és törölhetők az adatok az adatbázisban. A cikk feltételezi, hogy Ön ismeri a Go-t használó fejlesztéseket, de még járatlan a PostgreSQL-hez készült Azure-adatbázis használatában.
Előfeltételek
Ebben a rövid útmutatóban a következő útmutatók valamelyikében létrehozott erőforrásokat használunk kiindulási pontként:
A Go és a pq-összekötő telepítése
Telepítse a Go-t és a Pure Go Postgres illesztőprogramot (pq) a saját számítógépére. Kövesse az egyes platformoknak megfelelő lépéseket:
Windows
Töltse le és telepítse a Microsoft Windowshoz készült Go-t a telepítési utasítások szerint.
Nyissa meg a parancssort a Start menüből.
Hozzon létre egy mappát a projekt számára (például
mkdir %USERPROFILE%\go\src\postgresqlgo
).Nyissa meg a projektmappát (például
cd %USERPROFILE%\go\src\postgresqlgo
).Úgy állítsa be a GOPATH környezeti változóját, hogy a forráskód könyvtárára mutasson.
set GOPATH=%USERPROFILE%\go
.Telepítse a Pure Go Postgres illesztőt (pq) a
go get github.com/lib/pq
parancs futtatásával.Összefoglalva, telepítse a Go-t, majd futtassa ezeket a parancsokat a parancssorban:
mkdir %USERPROFILE%\go\src\postgresqlgo cd %USERPROFILE%\go\src\postgresqlgo set GOPATH=%USERPROFILE%\go go get github.com/lib/pq
Linux (Ubuntu)
Indítsa el a Bash felületet.
Telepítse a Go-t a
sudo apt-get install golang-go
parancs futtatásával.Hozzon létre egy mappát a projekt számára a kezdőkönyvtárban (például
mkdir -p ~/go/src/postgresqlgo/
).Nyissa meg a projektmappát (például
cd ~/go/src/postgresqlgo/
).Úgy állítsa be a GOPATH környezeti változót, hogy egy érvényes forráskönyvtárra mutasson, például az aktuális kezdőkönyvtár Go mappájára. A bash felületen futtassa az
export GOPATH=~/go
parancsot, amellyel a Go könyvtárát GOPATH útvonalként adhatja meg az aktuális felületi munkamenetre.Telepítse a Pure Go Postgres illesztőt (pq) a
go get github.com/lib/pq
parancs futtatásával.Összefoglalva, futtassa ezeket a bash-parancsokat:
sudo apt-get install golang-go mkdir -p ~/go/src/postgresqlgo/ cd ~/go/src/postgresqlgo/ export GOPATH=~/go/ go get github.com/lib/pq
Apple macOS
Töltse le és telepítse a Gót a platformjának megfelelő telepítési utasítások szerint.
Indítsa el a Bash felületet.
Hozzon létre egy mappát a projekt számára a kezdőkönyvtárban (például
mkdir -p ~/go/src/postgresqlgo/
).Nyissa meg a projektmappát (például
cd ~/go/src/postgresqlgo/
).Úgy állítsa be a GOPATH környezeti változót, hogy egy érvényes forráskönyvtárra mutasson, például az aktuális kezdőkönyvtár Go mappájára. A bash felületen futtassa az
export GOPATH=~/go
parancsot, amellyel a Go könyvtárát GOPATH útvonalként adhatja meg az aktuális felületi munkamenetre.Telepítse a Pure Go Postgres illesztőt (pq) a
go get github.com/lib/pq
parancs futtatásával.Összefoglalva, telepítse a Go-t, majd futtassa ezeket a bash-parancsokat:
mkdir -p ~/go/src/postgresqlgo/ cd ~/go/src/postgresqlgo/ export GOPATH=~/go/ go get github.com/lib/pq
Kapcsolatadatok lekérése
Kérje le a PostgreSQL-hez készült Azure-adatbázishoz való csatlakozáshoz szükséges kapcsolatadatokat. Szüksége lesz a teljes kiszolgálónévre és a bejelentkezési hitelesítő adatokra.
- Jelentkezzen be az Azure Portalra.
- Az Azure Portal bal oldali menüjében válassza a Minden erőforrás lehetőséget, majd keresse meg a létrehozott kiszolgálót (például a mydemoservert).
- Válassza ki a kiszolgálónevet.
- A kiszolgáló Áttekintés paneléről jegyezze fel a Kiszolgálónevet és a Kiszolgáló-rendszergazdai bejelentkezési nevet. Ha elfelejti a jelszavát, ezen a panelen új jelszót is tud kérni.
Go kód felépítése és futtatása
- Golang-kód írásához használhat egy egyszerű szövegszerkesztőt, ilyen például Microsoft Windows rendszeren a Jegyzettömb, Ubuntu rendszeren a vi vagy a Nano, macOS rendszeren pedig a TextEdit. Ha egy gazdagabb interaktív fejlesztési környezetet (IDE) szeretne használni, próbálja ki a GoLandot a Jetbrains, a Visual Studio Code-ot a Microsoft vagy az Atom segítségével.
- Illessze be a Golang-kódot a következő szakaszokból szövegfájlokba, és mentse a projektmappába a *.go fájlkiterjesztéssel, például a Windows elérési útjával
%USERPROFILE%\go\src\postgresqlgo\createtable.go
vagy a Linux elérési útjával~/go/src/postgresqlgo/createtable.go
. - Keresse meg a
HOST
, aDATABASE
, aUSER
és aPASSWORD
állandót a kódban, és a példaértékeket cserélje le a saját értékeire. - Nyissa meg a parancssort vagy a bash rendszerhéjat. Lépjen a projektmappára. Windows rendszer például a következővel:
cd %USERPROFILE%\go\src\postgresqlgo\
. Linuxon:cd ~/go/src/postgresqlgo/
. A fentiekben említettek közül egyes IDE-környezetek hibakeresési és futásidejű képességeket biztosítanak anélkül, hogy rendszerhéjparancsokra lenne szükség. - Futtassa a kódot a
go run createtable.go
parancs beírásával az alkalmazás fordításához és futtatásához. - Vagy a kód natív alkalmazásba való beépítéséhez írja be a
go build createtable.go
parancsot, majd indítsa el acreatetable.exe
fájlt az alkalmazás futtatásához.
Csatlakozás és tábla létrehozása
A következő kód használatával csatlakozhat, és létrehozhat egy táblát a CREATE TABLE SQL-utasítással, majd az INSERT INTO SQL-utasításokkal sorokat adhat hozzá a táblához.
A kód három csomagot importál, az sql package és a pq package csomagot illesztőprogramként a PostgreSQL-kiszolgálóval való kommunikációhoz, illetve az fmt package csomagot a nyomtatott bemenetekhez és kimenetekhez a parancssoron.
A kód meghívja az sql.Open() metódust az Azure Database for PostgreSQL szolgáltatáshoz való csatlakozáshoz, majd a db.Ping() metódussal ellenőrzi a kapcsolatot. A rendszer a folyamat során adatbázis-leírót használ, amely az adatbázis-kiszolgáló kapcsolatkészletét tárolja. A kód többször is meghívja az Exec() metódust, hogy különböző SQL-parancsokat futtasson. A rendszer minden alkalommal egyéni checkError() metódust hív meg, hogy ellenőrizze a hibákat, és hiba esetén kilépjen.
Cserélje le a HOST
, DATABASE
, USER
és PASSWORD
paramétereket a saját értékeire.
package main
import (
"database/sql"
"fmt"
_ "github.com/lib/pq"
)
const (
// Initialize connection constants.
HOST = "mydemoserver.postgres.database.azure.com"
DATABASE = "mypgsqldb"
USER = "mylogin@mydemoserver"
PASSWORD = "<server_admin_password>"
)
func checkError(err error) {
if err != nil {
panic(err)
}
}
func main() {
// Initialize connection string.
var connectionString string = fmt.Sprintf("host=%s user=%s password=%s dbname=%s sslmode=require", HOST, USER, PASSWORD, DATABASE)
// Initialize connection object.
db, err := sql.Open("postgres", connectionString)
checkError(err)
err = db.Ping()
checkError(err)
fmt.Println("Successfully created connection to database")
// Drop previous table of same name if one exists.
_, err = db.Exec("DROP TABLE IF EXISTS inventory;")
checkError(err)
fmt.Println("Finished dropping table (if existed)")
// Create table.
_, err = db.Exec("CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);")
checkError(err)
fmt.Println("Finished creating table")
// Insert some data into table.
sql_statement := "INSERT INTO inventory (name, quantity) VALUES ($1, $2);"
_, err = db.Exec(sql_statement, "banana", 150)
checkError(err)
_, err = db.Exec(sql_statement, "orange", 154)
checkError(err)
_, err = db.Exec(sql_statement, "apple", 100)
checkError(err)
fmt.Println("Inserted 3 rows of data")
}
Adatok beolvasása
Az alábbi kód használatával csatlakozhat és végezheti el az adatok olvasását SELECT SQL-utasítás segítségével.
A kód három csomagot importál, az sql package és a pq package csomagot illesztőprogramként a PostgreSQL-kiszolgálóval való kommunikációhoz, illetve az fmt package csomagot a nyomtatott bemenetekhez és kimenetekhez a parancssoron.
A kód meghívja az sql.Open() metódust az Azure Database for PostgreSQL szolgáltatáshoz való csatlakozáshoz, majd a db.Ping() metódussal ellenőrzi a kapcsolatot. A rendszer a folyamat során adatbázis-leírót használ, amely az adatbázis-kiszolgáló kapcsolatkészletét tárolja. A select lekérdezést a db.Query() metódus meghívásával lehet futtatni, és az így kapott sorokat a rendszer egy rows (sorok) típusú változóban tárolja. A kód beolvassa az aktuális sorban található oszlopok adatértékeit a rows.Scan() metódussal, majd a rows.Next() iterátor használatával ismétlődően fut a sorokon, amíg azok el nem fogynak. Minden sor oszlopértéke ki lesz nyomtatva a konzolra. Minden alkalommal, amikor egy egyéni checkError() metódussal ellenőrzi, hogy történt-e hiba, és pánikba esik, hogy hiba történt-e.
Cserélje le a HOST
, DATABASE
, USER
és PASSWORD
paramétereket a saját értékeire.
package main
import (
"database/sql"
"fmt"
_ "github.com/lib/pq"
)
const (
// Initialize connection constants.
HOST = "mydemoserver.postgres.database.azure.com"
DATABASE = "mypgsqldb"
USER = "mylogin@mydemoserver"
PASSWORD = "<server_admin_password>"
)
func checkError(err error) {
if err != nil {
panic(err)
}
}
func main() {
// Initialize connection string.
var connectionString string = fmt.Sprintf("host=%s user=%s password=%s dbname=%s sslmode=require", HOST, USER, PASSWORD, DATABASE)
// Initialize connection object.
db, err := sql.Open("postgres", connectionString)
checkError(err)
err = db.Ping()
checkError(err)
fmt.Println("Successfully created connection to database")
// Read rows from table.
var id int
var name string
var quantity int
sql_statement := "SELECT * from inventory;"
rows, err := db.Query(sql_statement)
checkError(err)
defer rows.Close()
for rows.Next() {
switch err := rows.Scan(&id, &name, &quantity); err {
case sql.ErrNoRows:
fmt.Println("No rows were returned")
case nil:
fmt.Printf("Data row = (%d, %s, %d)\n", id, name, quantity)
default:
checkError(err)
}
}
}
Adatok frissítése
A következő kód használatával csatlakozhat és frissítheti az adatokat az UPDATE SQL-utasítással.
A kód három csomagot importál, az sql package és a pq package csomagot illesztőprogramként a Postgres-kiszolgálóval való kommunikációhoz, illetve az fmt package csomagot a nyomtatott bemenetekhez és kimenetekhez a parancssoron.
A kód meghívja az sql.Open() metódust az Azure Database for PostgreSQL szolgáltatáshoz való csatlakozáshoz, majd a db.Ping() metódussal ellenőrzi a kapcsolatot. A rendszer a folyamat során adatbázis-leírót használ, amely az adatbázis-kiszolgáló kapcsolatkészletét tárolja. A kód meghívja az Exec() metódust, hogy futtassa a táblát frissítő SQL-utasítást. A rendszer egyéni checkError() metódussal ellenőrzi a hibákat, és hiba esetén kilép.
Cserélje le a HOST
, DATABASE
, USER
és PASSWORD
paramétereket a saját értékeire.
package main
import (
"database/sql"
_ "github.com/lib/pq"
"fmt"
)
const (
// Initialize connection constants.
HOST = "mydemoserver.postgres.database.azure.com"
DATABASE = "mypgsqldb"
USER = "mylogin@mydemoserver"
PASSWORD = "<server_admin_password>"
)
func checkError(err error) {
if err != nil {
panic(err)
}
}
func main() {
// Initialize connection string.
var connectionString string =
fmt.Sprintf("host=%s user=%s password=%s dbname=%s sslmode=require", HOST, USER, PASSWORD, DATABASE)
// Initialize connection object.
db, err := sql.Open("postgres", connectionString)
checkError(err)
err = db.Ping()
checkError(err)
fmt.Println("Successfully created connection to database")
// Modify some data in table.
sql_statement := "UPDATE inventory SET quantity = $2 WHERE name = $1;"
_, err = db.Exec(sql_statement, "banana", 200)
checkError(err)
fmt.Println("Updated 1 row of data")
}
Adatok törlése
Az alábbi kód használatával csatlakozhat és végezheti el az adatok törlését egy DELETE SQL-utasítás segítségével.
A kód három csomagot importál, az sql package és a pq package csomagot illesztőprogramként a Postgres-kiszolgálóval való kommunikációhoz, illetve az fmt package csomagot a nyomtatott bemenetekhez és kimenetekhez a parancssoron.
A kód meghívja az sql.Open() metódust az Azure Database for PostgreSQL szolgáltatáshoz való csatlakozáshoz, majd a db.Ping() metódussal ellenőrzi a kapcsolatot. A rendszer a folyamat során adatbázis-leírót használ, amely az adatbázis-kiszolgáló kapcsolatkészletét tárolja. A kód meghívja az Exec() metódust, hogy futtassa a táblából egy sort törlő SQL-utasítást. A rendszer egyéni checkError() metódussal ellenőrzi a hibákat, és hiba esetén kilép.
Cserélje le a HOST
, DATABASE
, USER
és PASSWORD
paramétereket a saját értékeire.
package main
import (
"database/sql"
_ "github.com/lib/pq"
"fmt"
)
const (
// Initialize connection constants.
HOST = "mydemoserver.postgres.database.azure.com"
DATABASE = "mypgsqldb"
USER = "mylogin@mydemoserver"
PASSWORD = "<server_admin_password>"
)
func checkError(err error) {
if err != nil {
panic(err)
}
}
func main() {
// Initialize connection string.
var connectionString string =
fmt.Sprintf("host=%s user=%s password=%s dbname=%s sslmode=require", HOST, USER, PASSWORD, DATABASE)
// Initialize connection object.
db, err := sql.Open("postgres", connectionString)
checkError(err)
err = db.Ping()
checkError(err)
fmt.Println("Successfully created connection to database")
// Delete some data from table.
sql_statement := "DELETE FROM inventory WHERE name = $1;"
_, err = db.Exec(sql_statement, "orange")
checkError(err)
fmt.Println("Deleted 1 row of data")
}
Az erőforrások eltávolítása
A rövid útmutató során használt összes erőforrás törléséhez törölje az erőforráscsoportot az alábbi paranccsal:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes
Következő lépések
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: