Gorm简单操作PostGresSQL

目录

0、定义表结构

1、连接

2、建表

3、插入

4、查询

5、修改

6、删除

7、完整代码


0、定义表结构


type User struct {
	Id   int    `gorm:"primary_key"`
	Name string `gorm:"type:varchar(50);not null;index:ip_idx"`
	Age  int    `gorm:"not null"`
	Addr string `gorm:"type:varchar(50);not null;"`
}

1、连接

//连接数据库
	db, err := gorm.Open("postgres", "host=127.0.0.1 port=5432 user=postgres dbname=db1 password=123456 sslmode=disable")
	if err != nil {
		log.Println(err)
	} else {
		log.Println("连接成功!")
	}
	defer db.Close()

2、建表

//创建表Users
	if !db.HasTable(&User{}) {
		if err := db.CreateTable(&User{}).Error; err != nil {
			panic(err)
		} else {
			log.Println("创建成功!")
		}
	}

3、插入

//插入数据
	user := &User{
		Id:   1,
		Name: "code",
		Age:  20,
		Addr: "大连",
	}
	if err := db.Create(user).Error; err != nil {
		log.Println("插入失败!", err)
		return
	} else {
		log.Println("插入成功!")
	}

4、查询

//查询
	var u User
	db.Find(&u, "Id=?", 1)
	log.Println(u)

5、修改

//修改
	var uu User
	db.First(&uu) //将第一行的数据信息传给user
	user.Name = "knight"
	db.Save(&uu)
	log.Println(uu)

6、删除

//删除
	var uuu = new(User)
	db.Find(uuu, "Id=?", 2)
	log.Printf("%#v\n", uuu)
	//删除
	db.Delete(uuu)

7、完整代码

package main

import (
	"log"

	"github.com/jinzhu/gorm"
	_ "github.com/jinzhu/gorm/dialects/postgres"
	_ "github.com/spaolacci/murmur3"
)

type User struct {
	Id   int    `gorm:"primary_key"`
	Name string `gorm:"type:varchar(50);not null;index:ip_idx"`
	Age  int    `gorm:"not null"`
	Addr string `gorm:"type:varchar(50);not null;"`
}

func main() {
	//连接数据库
	db, err := gorm.Open("postgres", "host=127.0.0.1 port=5432 user=postgres dbname=db1 password=123456 sslmode=disable")
	if err != nil {
		log.Println(err)
	} else {
		log.Println("连接成功!")
	}
	defer db.Close()

	//创建表Users
	if !db.HasTable(&User{}) {
		if err := db.CreateTable(&User{}).Error; err != nil {
			panic(err)
		} else {
			log.Println("创建成功!")
		}
	}

	//插入数据
	user := &User{
		Id:   1,
		Name: "code",
		Age:  20,
		Addr: "大连",
	}
	if err := db.Create(user).Error; err != nil {
		log.Println("插入失败!", err)
		return
	} else {
		log.Println("插入成功!")
	}

	//查询
	var u User
	db.Find(&u, "Id=?", 1)
	log.Println(u)
	//修改
	var uu User
	db.First(&uu) //将第一行的数据信息传给user
	user.Name = "knight"
	db.Save(&uu)
	log.Println(uu)
	//删除
	var uuu = new(User)
	db.Find(uuu, "Id=?", 2)
	log.Printf("%#v\n", uuu)
	//删除
	db.Delete(uuu)

}

猜你喜欢

转载自blog.csdn.net/qq_51701007/article/details/125012853