Mulai Cepat: Menggunakan bahasa Go untuk menyambungkan dan mengkueri data di Azure Database for PostgreSQL - Server Fleksibel
BERLAKU UNTUK: Azure Database for PostgreSQL - Server Fleksibel
Mulai cepat ini menunjukkan cara menyambungkan ke Azure Database for PostgreSQL menggunakan kode yang ditulis dalam bahasa Go (golang). Ini menunjukkan cara menggunakan pernyataan SQL untuk mengkueri, menyisipkan, memperbarui, dan menghapus data dalam database. Artikel ini mengasumsikan Anda terbiasa dengan pengembangan menggunakan Go, tetapi Anda sekarang menggunakan Azure Database for PostgreSQL.
Prasyarat
Mulai cepat ini menggunakan sumber daya yang dibuat dalam Membuat instans Azure Database for PostgreSQL - Server Fleksibel sebagai titik awal.
Penting
Kami sarankan Anda menggunakan server dengan Akses publik (alamat IP yang diizinkan) diaktifkan untuk mulai cepat ini. Menggunakan server dengan Akses privat (Integrasi VNet) yang diaktifkan untuk menyelesaikan mulai cepat ini mungkin melibatkan langkah tambahan yang tidak tercakup.
Pastikan alamat IP yang Anda sambungkan telah ditambahkan aturan firewall server menggunakan portal Azure atau Azure CLI.
Memasang konektor Go dan pq
Pasang Go dan driver Pure Go Postgres (pq) pada mesin Anda sendiri. Bergantung pada platform Anda, ikuti langkah-langkah yang sesuai:
Unduh dan pasang Go for Microsoft Windows sesuai dengan petunjuk penginstalan.
Luncurkan perintah dari menu mulai.
Buat folder untuk proyek Anda, seperti
mkdir %USERPROFILE%\go\src\postgresqlgo
.Ubah direktori ke dalam folder proyek, seperti
cd %USERPROFILE%\go\src\postgresqlgo
.Atur variabel lingkungan untuk GOPATH untuk menunjuk ke direktori kode sumber.
set GOPATH=%USERPROFILE%\go
.Jalankan go mod init untuk membuat modul di direktori saat ini. Misalnya:
go mod init postgresqlgo
.- Parameter
<module_path>
umumnya adalah lokasi dalam repo GitHub - sepertigithub.com/<your_github_account_name>/<directory>
. - Saat Anda membuat aplikasi baris perintah sebagai pengujian dan tidak akan menerbitkan aplikasi,
<module_path>
aplikasi tidak perlu merujuk ke lokasi aktual. Contohnya,postgresqlgo
.
- Parameter
Pasang driver Pure Go Postgres (pq) dengan menjalankan perintah
go get github.com/lib/pq
.Singkatnya, pasang Go, lalu jalankan perintah ini di perintah:
mkdir %USERPROFILE%\go\src\postgresqlgo cd %USERPROFILE%\go\src\postgresqlgo set GOPATH=%USERPROFILE%\go go mod init postgresqlgo go get github.com/lib/pq
Mendapatkan informasi koneksi
Dapatkan informasi terkait koneksi yang diperlukan untuk menyambungkan ke Azure Database for PostgreSQL. Anda memerlukan nama server dan kredensial untuk masuk yang sepenuhnya memenuhi syarat.
- Masuk ke portal Azure.
- Dari menu sebelah kiri di portal Microsoft Azure, pilih Semua sumber daya, lalu cari server yang telah Anda buat (seperti mydemoserver).
- Pilih nama server.
- Dari panel server Gambaran Umum, buat catatan Nama server dan Nama untuk masuk admin server. Jika lupa kata sandi, Anda juga dapat mengatur ulang kata sandi dari panel ini.
Bangun dan jalankan kode Go
- Untuk menulis kode Golang, Anda dapat menggunakan editor teks biasa, seperti Notepad di Microsoft Windows, vi atau Nano di Ubuntu, atau TextEdit di macOS. Jika Anda lebih suka Interactive Development Environment (IDE) yang lebih beragam, coba GoLand oleh Jetbrains, Visual Studio Code oleh Microsoft, atau Atom.
- Tempelkan kode Golang dari bagian berikut ke dalam file teks, dan simpan ke folder proyek Anda dengan ekstensi file *.go, seperti jalur Windows
%USERPROFILE%\go\src\postgresqlgo\createtable.go
atau jalur Linux~/go/src/postgresqlgo/createtable.go
. - Temukan
HOST
,DATABASE
,USER
, danPASSWORD
konstanta dalam kode, dan ganti nilai contoh dengan nilai Anda sendiri. Database bernama postgres dibuat saat Anda membuat instans server Azure Database for PostgreSQL. Anda bisa menggunakan database tersebut atau database lain yang telah Anda buat. - Luncurkan perintah atau shell bash. Ubah direktori ke folder proyek Anda. Misalnya, di Windows
cd %USERPROFILE%\go\src\postgresqlgo\
. Di Linuxcd ~/go/src/postgresqlgo/
. Beberapa lingkungan IDE yang disebutkan menawarkan kemampuan debug dan runtime bahasa umum tanpa memerlukan perintah shell. - Jalankan kode dengan mengetikkan perintah
go run createtable.go
untuk mengompilasi aplikasi dan menjalankannya. - Atau, untuk membangun kode menjadi aplikasi asli,
go build createtable.go
, lalu luncurkancreatetable.exe
untuk menjalankan aplikasi.
Menyambungkan dan membuat tabel
Gunakan kode berikut untuk menyambungkan dan membuat tabel menggunakan pernyataan SQL CREATE TABLE, diikuti dengan pernyataan SQL INSERT INTO untuk menambahkan baris ke dalam tabel.
Kode ini mengimpor tiga paket: paket sql, paket pq sebagai driver untuk berkomunikasi dengan server PostgreSQL, dan paket fmt untuk input dan output cetak pada baris perintah.
Kode memanggil metode sql.Open() untuk menyambungkan ke database Azure Database for PostgreSQL, dan periksa koneksi menggunakan metode db.Ping(). Handel database digunakan selama proses berlangsung, yang menahan kumpulan koneksi untuk server database. Kode ini memanggil metode Exec() beberapa kali untuk menjalankan beberapa perintah SQL. Setiap kali metode checkError() kustom memeriksa apakah terjadi kesalahan dan panik untuk keluar jika terjadi kesalahan.
Ganti parameter HOST
, DATABASE
, USER
, dan PASSWORD
dengan nilai Anda sendiri.
package main
import (
"database/sql"
"fmt"
_ "github.com/lib/pq"
)
const (
// Initialize connection constants.
HOST = "mydemoserver.postgres.database.azure.com"
DATABASE = "postgres"
USER = "mylogin"
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")
}
Membaca data
Gunakan kode berikut untuk menyambungkan dan membaca data menggunakan pernyataan SQL SELECT.
Kode ini mengimpor tiga paket: paket sql, paket pq sebagai driver untuk berkomunikasi dengan server PostgreSQL, dan paket fmt untuk input dan output cetak pada baris perintah.
Kode memanggil metode sql.Open() untuk menyambungkan ke database Azure Database for PostgreSQL, dan periksa koneksi menggunakan metode db.Ping(). Handel database digunakan selama proses berlangsung, yang menahan kumpulan koneksi untuk server database. Kueri tertentu dijalankan dengan memanggil metode db.Query(), dan baris yang dihasilkan disimpan dalam variabel jenis baris. Kode membaca nilai data kolom di baris saat ini menggunakan metode rows.Scan() dan perulangan di atas baris menggunakan iterator rows.Next() hingga tidak ada baris lagi. Setiap nilai kolom baris dicetak ke konsol. Setiap kali metode checkError() kustom digunakan untuk memeriksa apakah terjadi kesalahan dan panik untuk keluar jika terjadi kesalahan.
Ganti parameter HOST
, DATABASE
, USER
, dan PASSWORD
dengan nilai Anda sendiri.
package main
import (
"database/sql"
"fmt"
_ "github.com/lib/pq"
)
const (
// Initialize connection constants.
HOST = "mydemoserver.postgres.database.azure.com"
DATABASE = "postgres"
USER = "mylogin"
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)
}
}
}
Memperbarui data
Gunakan kode berikut untuk menyambungkan dan memperbarui data menggunakan Pernyataan SQL UPDATE.
Kode ini mengimpor tiga paket: paket sql, paket pq sebagai driver untuk berkomunikasi dengan server Postgres, dan paket fmt untuk input dan output cetak pada baris perintah.
Kode memanggil metode sql.Open() untuk menyambungkan ke database Azure Database for PostgreSQL, dan periksa koneksi menggunakan metode db.Ping(). Handel database digunakan selama proses berlangsung, yang menahan kumpulan koneksi untuk server database. Kode memanggil metode Exec() untuk menjalankan pernyataan SQL yang memperbarui tabel. Metode checkError() kustom digunakan untuk memeriksa apakah terjadi kesalahan dan panik untuk keluar jika terjadi kesalahan.
Ganti parameter HOST
, DATABASE
, USER
, dan PASSWORD
dengan nilai Anda sendiri.
package main
import (
"database/sql"
_ "github.com/lib/pq"
"fmt"
)
const (
// Initialize connection constants.
HOST = "mydemoserver.postgres.database.azure.com"
DATABASE = "postgres"
USER = "mylogin"
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")
}
Menghapus data
Gunakan kode berikut untuk menyambungkan dan menghapus data menggunakan pernyataan SQL DELETE.
Kode ini mengimpor tiga paket: paket sql, paket pq sebagai driver untuk berkomunikasi dengan server Postgres, dan paket fmt untuk input dan output cetak pada baris perintah.
Kode memanggil metode sql.Open() untuk menyambungkan ke database Azure Database for PostgreSQL, dan periksa koneksi menggunakan metode db.Ping(). Handel database digunakan selama proses berlangsung, yang menahan kumpulan koneksi untuk server database. Kode memanggil metode Exec() untuk menjalankan pernyataan SQL yang menghapus baris dari tabel. Metode checkError() kustom digunakan untuk memeriksa apakah terjadi kesalahan dan panik untuk keluar jika terjadi kesalahan.
Ganti parameter HOST
, DATABASE
, USER
, dan PASSWORD
dengan nilai Anda sendiri.
package main
import (
"database/sql"
_ "github.com/lib/pq"
"fmt"
)
const (
// Initialize connection constants.
HOST = "mydemoserver.postgres.database.azure.com"
DATABASE = "postgres"
USER = "mylogin"
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")
}
Membersihkan sumber daya
Untuk membersihkan semua sumber daya yang digunakan selama mulai cepat ini, hapus grup sumber daya menggunakan perintah berikut:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes
Konten terkait
- Mengelola Azure Database for PostgreSQL - Server Fleksibel.
- Mulai cepat: Gunakan Python untuk menyambungkan dan mengkueri data dari instans server fleksibel Azure Database for PostgreSQL.
- Mulai cepat: Gunakan Java untuk menyambungkan dan mengkueri data dari instans server fleksibel Azure Database for PostgreSQL.
- Mulai cepat: Gunakan .NET (C#) untuk menyambungkan dan mengkueri data dari instans server fleksibel Azure Database for PostgreSQL.
- Mulai cepat: Gunakan PHP untuk menyambungkan dan mengkueri data dari instans server fleksibel Azure Database for PostgreSQL.
- Mulai cepat: Gunakan Azure CLI untuk menyambungkan dan mengkueri data dari instans server fleksibel Azure Database for PostgreSQL.
- Mulai cepat: Mengimpor data dari Azure Database for PostgreSQL - Server Fleksibel di Power BI.