제공된 코드로 인해 싱글톤 DB 인스턴스에서 메서드에 액세스할 수 없습니다. . 사용자는 싱글톤에서 메서드를 정의하고 싱글톤 참조에서 이를 호출하는 것을 목표로 합니다.
내보낸 메서드를 사용하여 싱글톤 DB 인스턴스를 생성하려면 다음 수정된 코드를 따르세요.
<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 // Add other methods } type manager struct { db *gorm.DB } var Mgr Manager func init() { db, err := gorm.Open("sqlite3", "../articles.db") if err != nil { log.Fatal("Failed to init db:", err) } Mgr = &manager{db: db} } func (mgr *manager) AddArticle(article *article.Article) (err error) { mgr.db.Create(article) if errs := mgr.db.GetErrors(); len(errs) > 0 { err = errs[0] } return }</code>
이 솔루션 사용:
gorm.Create()에서 예외를 포착하고 반환하려면 다음과 같이 AddArticle 메서드를 수정하세요.
<code class="go">func (mgr *manager) AddArticle(article *article.Article) (err error) { if err := mgr.db.Create(article).Error; err != nil { return err } if errs := mgr.db.GetErrors(); len(errs) > 0 { return errs[0] } return nil }</code>
위 내용은 Go에서 내보낸 메서드를 사용하여 싱글톤 DB 인스턴스를 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!