Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mencipta Instance DB Singleton dengan Kaedah dan Pengendalian Ralat?

Bagaimana untuk Mencipta Instance DB Singleton dengan Kaedah dan Pengendalian Ralat?

Linda Hamilton
Linda Hamiltonasal
2024-11-02 20:35:30984semak imbas

How to Create a Singleton DB Instance with Methods and Error Handling?

Mencipta Instance DB Singleton dengan Kaedah

Kod asal yang disediakan mengandungi pelaksanaan singleton, tetapi tidak mempunyai kaedah yang boleh dipanggil pada contoh singleton . Artikel ini menunjukkan cara menambah singleton yang disediakan dengan kaedah dan menangani soalan yang berkaitan dengan pengendalian ralat.

Pelaksanaan Singleton yang disemak dengan Kaedah

Dalam kod yang dikemas kini, kami mentakrifkan Pengurus antara muka yang dieksport dengan kaedah yang dikehendaki (AddArticle dalam kes ini). Kami kemudian mencipta pengurus jenis pelaksana yang tidak dieksport. Pembolehubah global Mgr jenis antara muka dimulakan dalam fungsi package init(), memastikan ia dibuat seketika sahaja.

<code class="go">package dbprovider

import (
    "github.com/jinzhu/gorm"
    _ "github.com/jinzhu/gorm/dialects/sqlite"
    "rest/article"
    "log"
)

type Manager interface {
    AddArticle(article *article.Article) error
}

type manager struct {
    db *gorm.DB
}

var Mgr Manager // Global variable of the interface type

func init() {
    db, err := gorm.Open("sqlite3", "../articles.db")
    if err != nil {
        log.Fatal("Failed to initialize database:", err)
    }
    Mgr = &manager{db: db}
}

func (mgr *manager) AddArticle(article *article.Article) error {
    if err := mgr.db.Create(article).Error; err != nil {
        return err
    }
    return nil
}</code>

Menggunakan Singleton

The Contoh Mgr kini boleh digunakan untuk menambah artikel pada pangkalan data:

<code class="go">import "dbprovider"

if err := dbprovider.Mgr.AddArticle(someArticle); err != nil {
    // Handle error
}</code>

Pengendalian Ralat

Untuk menangkap dan mengembalikan pengecualian daripada gorm.Create(), kami menyemak ralat dikembalikan oleh gorm.Create().Ralat. Jika ralat berlaku, ia dikembalikan; jika tidak, nil dikembalikan.

Kesimpulan

Pelaksanaan yang disemak ini mencipta contoh DB tunggal dengan kaedah yang boleh dipanggil pada rujukan tunggal. Ia juga menunjukkan cara mengendalikan pengecualian daripada gorm.Create().

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Instance DB Singleton dengan Kaedah dan Pengendalian Ralat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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