Artikel untuk melihat cara menggunakan Golang untuk melaksanakan DBMS

PHPz
Lepaskan: 2023-04-11 11:48:35
asal
683 orang telah melayarinya

Dalam beberapa tahun kebelakangan ini, banyak perusahaan telah mula memindahkan pangkalan data ke awan, yang menyediakan peluang baharu untuk pelaksanaan DBMS (Sistem Pengurusan Pangkalan Data). Pada masa yang sama, Golang (juga dikenali sebagai Go) juga semakin mendapat perhatian kerana kecekapannya yang tinggi dan kependaman yang rendah. Jadi, bagaimana untuk menggunakan Golang untuk melaksanakan DBMS?

Sebelum bermula, mari kita perkenalkan Golang secara ringkas. Go ialah bahasa pengaturcaraan yang ditaip secara statik yang dibangunkan oleh Google Sintaksnya serupa dengan bahasa C, tetapi ia menghilangkan banyak butiran yang membosankan, menjadikannya lebih ringkas dan lebih mudah untuk dibaca dan ditulis. Golang juga mempunyai ciri lanjutan seperti coroutine, pengumpulan sampah, antara muka dan pembenaman jenis, yang boleh meningkatkan kecekapan pengaturcaraan.

Seterusnya, mari kita lihat cara melaksanakan DBMS mudah menggunakan Golang.

1. Reka bentuk struktur pangkalan data

Sebelum melaksanakan DBMS, kita perlu mereka bentuk struktur pangkalan data terlebih dahulu. Katakan kita ingin mereka bentuk jadual keahlian, yang merangkumi ID ahli, nama, jantina, hari lahir, nombor telefon bimbit, e-mel dan medan lain Kemudian, kita boleh menggunakan struktur (struktur) dalam Golang untuk menentukan struktur pangkalan data. Kod khusus adalah seperti berikut:

type Member struct {
    ID       int
    Name     string
    Gender   string
    Birthday string
    Phone    string
    Email    string
}
Salin selepas log masuk

2. Sambung ke pangkalan data

Di Golang, penyambungan ke pangkalan data memerlukan penggunaan perpustakaan pihak ketiga yang disediakan secara rasmi - "database/ sql" dan "pangkalan data/sql/pemandu". Pustaka ini menyediakan antara muka SQL biasa yang boleh berinteraksi dengan pelbagai pangkalan data hubungan.

Pertama-tama kita perlu memanggil fungsi Buka dalam perpustakaan "pangkalan data/sql" untuk membuka sambungan pangkalan data. Di sini kami mengambil pangkalan data MySQL sebagai contoh Kod khusus adalah seperti berikut:

import (
    "database/sql"
    _ "github.com/go-sql-driver/mysql"
)

func main() {
    db, err := sql.Open("mysql", "root:123456@tcp(127.0.0.1:3306)/test")
    if err != nil {
        // 异常处理
    }
}
Salin selepas log masuk

Dalam kod di atas, kami menggunakan fungsi Buka dalam "pangkalan data/sql" untuk membuka sambungan pangkalan data MySQL, dalam yang mana parameter pertama Lulus dalam rentetan MySQL, dan masukkan nama pengguna dan kata laluan sebagai parameter kedua.

3. Cipta jadual

Dengan menyambung ke pangkalan data, kita boleh menggunakan Golang untuk menulis pernyataan SQL untuk mencipta jadual pada pangkalan data MySQL. Kod khusus adalah seperti berikut:

_, err := db.Exec(`CREATE TABLE IF NOT EXISTS members (
    id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(20) NOT NULL,
    gender VARCHAR(10) NOT NULL,
    birthday DATE NOT NULL,
    phone VARCHAR(20) NOT NULL,
    email VARCHAR(50) NOT NULL,
    PRIMARY KEY (id))`)
if err != nil {
    // 异常处理
}
Salin selepas log masuk

Kod di atas melaksanakan pernyataan SQL dengan memanggil fungsi Exec dalam perpustakaan "pangkalan data/sql", mencipta jadual bernama ahli, yang mengandungi id, nama, Terdapat 6 bidang: jantina, hari lahir, telefon dan e-mel. Ambil perhatian bahawa kenaikan automatik digunakan pada medan id.

4. Simpan data

Kini, kami telah berjaya mencipta jadual bernama ahli dalam pangkalan data MySQL. Seterusnya, kita perlu menyimpan beberapa data ke dalam jadual. Teruskan sahaja menggunakan Golang untuk menulis pernyataan SQL. Contoh kod adalah seperti berikut:

member := Member{
    ID:       1,
    Name:     "张三",
    Gender:   "男",
    Birthday: "1990-01-01",
    Phone:    "13800138000",
    Email:    "zhangsan@example.com",
}
_, err = db.Exec("INSERT INTO members(id, name, gender, birthday, phone, email) VALUES (?, ?, ?, ?, ?, ?)", member.ID, member.Name, member.Gender, member.Birthday, member.Phone, member.Email)
if err != nil {
    // 异常处理
}
Salin selepas log masuk

5 Data pertanyaan

Selain menyimpan data, kami juga perlu menyokong data pertanyaan daripada pangkalan data. Golang menyediakan jenis Baris dan Baris untuk mewakili set hasil bagi beberapa keping data dan satu keping data masing-masing. Contoh kod adalah seperti berikut:

rows, err := db.Query("SELECT * FROM members")
if err != nil {
    // 异常处理
}
defer rows.Close()

var members []Member
for rows.Next() {
    var member Member
    if err := rows.Scan(&member.ID, &member.Name, &member.Gender, &member.Birthday, &member.Phone, &member.Email); err != nil {
        // 异常处理
    }
    members = append(members, member)
}
Salin selepas log masuk

Kod di atas menanyakan data daripada pangkalan data dan merentasi keputusan yang ditetapkan dengan memanggil fungsi Pertanyaan dan Seterusnya dalam perpustakaan "pangkalan data/sql", dan kemudian meletakkan pertanyaan menghasilkan Penghirisan jenis Ahli.

6. Ringkasan

Setakat ini, kami telah melaksanakan DBMS mudah menggunakan Golang, yang termasuk menyambung ke pangkalan data MySQL, mencipta jadual data, menyimpan data dan data pertanyaan. Kod di atas juga boleh digunakan sebagai pengetahuan asas apabila mempelajari "Golang dan pembangunan pangkalan data" pada masa hadapan. Untuk aplikasi dalam persekitaran pengeluaran sebenar, kami memerlukan reka bentuk yang lebih kompleks untuk menyediakan fungsi yang lebih lengkap.

Atas ialah kandungan terperinci Artikel untuk melihat cara menggunakan Golang untuk melaksanakan DBMS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan