Add multiple records to database

This commit is contained in:
Kameleoonik 2018-12-20 13:58:40 +01:00
parent a5aaba4f9a
commit d53905dd76
4 changed files with 46 additions and 6 deletions

Binary file not shown.

View File

@ -12,7 +12,7 @@ import (
func Connect() *pg.DB {
opts := &pg.Options{
User: "postgres",
Password: "",
Password: "REALY ? ;-)",
Addr: "localhost:5432",
Database: "myDB",
}

View File

@ -35,6 +35,27 @@ func (pi *ProductItem) Save(db *pg.DB) error {
return nil
}
func (pi *ProductItem) SaveAndReturn(db *pg.DB) (*ProductItem, error) {
InsertResult, insertErr := db.Model(pi).Returning("*").Insert()
if insertErr != nil{
log.Printf("Blad przy dodawaniu nowego itemu, Powod: %v\n", insertErr)
return nil, insertErr
}
log.Printf("ProduktItem dodany. \n")
log.Printf("Otzrymana wartosc: %v\n", InsertResult.RowsAffected)
return pi, nil
}
func (pi *ProductItem) SaveMultiple(db *pg.DB, items []*ProductItem) error {
_, insertErr := db.Model(items[0], items[1]).Insert()
if insertErr != nil {
log.Printf("Blad multi dodawania, powod: %v\n", insertErr)
return insertErr
}
log.Printf("Multidodawanie zakończone sukcesem.")
return nil
}
func CreateProductItemsTable(db *pg.DB) error {
opts := &orm.CreateTableOptions{
IfNotExists: true,

29
main.go
View File

@ -13,9 +13,9 @@ func main() {
}
func SaveProduct(dbRef *pg.DB) {
newPI := &db.ProductItem {
Name: "Product 1",
Desc: "Product 1 desc",
newPI1 := &db.ProductItem {
Name: "Product 5",
Desc: "Product 2 desc",
Image: "This is image path",
Price: 4.5,
Features: struct {
@ -31,5 +31,24 @@ func SaveProduct(dbRef *pg.DB) {
UpdateAt: time.Now(),
IsActive: true,
}
newPI.Save(dbRef)
}
newPI2 := &db.ProductItem {
Name: "Product 6",
Desc: "Product 2 desc",
Image: "This is image path",
Price: 4.5,
Features: struct {
Name string
Desc string
Imp int
}{
Name: "F1",
Desc: "F1 Desc",
Imp: 3,
},
CreateAt: time.Now(),
UpdateAt: time.Now(),
IsActive: true,
}
totalItems := []*db.ProductItem{newPI1, newPI2}
newPI1.SaveMultiple(dbRef, totalItems)
}