数据库改用orm框架 gorm
parent
e85a4ca4c0
commit
919cce7fa2
@ -0,0 +1,38 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/google/uuid"
|
||||||
|
"go_mqtt/mydb"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Order struct {
|
||||||
|
ID uint
|
||||||
|
OrderNumber string
|
||||||
|
TotalAmount float64
|
||||||
|
UserID uint // 外键
|
||||||
|
|
||||||
|
//User User `gorm:"foreignKey:UserID"` // 一对一关联,通过 UserID 外键关联到 User 结构体
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
fmt.Println("Order init()")
|
||||||
|
mydb.DB.AutoMigrate(&Order{})
|
||||||
|
}
|
||||||
|
|
||||||
|
// TableName 会将 Product 的表名重写为 `product`
|
||||||
|
func (Order) TableName() string {
|
||||||
|
return "order"
|
||||||
|
}
|
||||||
|
|
||||||
|
func SaveOrder() {
|
||||||
|
uuid := uuid.New()
|
||||||
|
// 创建记录
|
||||||
|
order := Order{OrderNumber: uuid.String(), TotalAmount: 1999.9, UserID: 1}
|
||||||
|
result := mydb.DB.Create(&order)
|
||||||
|
if result.Error != nil {
|
||||||
|
fmt.Println("Failed to create order:", result.Error)
|
||||||
|
} else {
|
||||||
|
fmt.Println("order created successfully!")
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,45 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"go_mqtt/mydb"
|
||||||
|
"go_mqtt/utils"
|
||||||
|
)
|
||||||
|
|
||||||
|
//gorm:"column:column_name":指定字段在数据库中的列名。
|
||||||
|
//gorm:"primaryKey":指定字段为主键。
|
||||||
|
//gorm:"autoIncrement":指定字段为自增长。
|
||||||
|
//gorm:"unique":指定字段在数据库中唯一。
|
||||||
|
//gorm:"not null":指定字段不能为空。
|
||||||
|
//gorm:"default:value":指定字段的默认值。
|
||||||
|
//gorm:"size:length":指定字段的长度。
|
||||||
|
//gorm:"index":指定字段创建索引。
|
||||||
|
|
||||||
|
type Product struct {
|
||||||
|
ID uint `gorm:"primaryKey;autoIncrement"`
|
||||||
|
Name string `gorm:"size:255;not null"`
|
||||||
|
Price float64
|
||||||
|
Category string `gorm:"index"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
fmt.Println("Product init()")
|
||||||
|
mydb.DB.AutoMigrate(&Product{})
|
||||||
|
}
|
||||||
|
|
||||||
|
// TableName 会将 Product 的表名重写为 `product`
|
||||||
|
func (Product) TableName() string {
|
||||||
|
return "product"
|
||||||
|
}
|
||||||
|
|
||||||
|
func SaveProduct() {
|
||||||
|
price := utils.GetRandomFloat64(100, 2000)
|
||||||
|
// 创建记录
|
||||||
|
product := Product{Name: "Laptop", Price: price}
|
||||||
|
result := mydb.DB.Create(&product)
|
||||||
|
if result.Error != nil {
|
||||||
|
fmt.Println("Failed to create product:", result.Error)
|
||||||
|
} else {
|
||||||
|
fmt.Println("Product created successfully!")
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,15 +1,38 @@
|
|||||||
package models
|
package models
|
||||||
|
|
||||||
import "time"
|
import (
|
||||||
|
"fmt"
|
||||||
|
"go_mqtt/mydb"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
type Temperature struct {
|
type Temperature struct {
|
||||||
Id int64
|
Id int64
|
||||||
CreateDate time.Time
|
CreateDate time.Time
|
||||||
DataDate string
|
DataDate string `gorm:"size:20"`
|
||||||
DataHour string
|
DataHour string `gorm:"size:20"`
|
||||||
DataMinute string
|
DataMinute string `gorm:"size:20"`
|
||||||
Humidity string
|
Humidity string `gorm:"size:10"`
|
||||||
LocationDesc string
|
LocationDesc string `gorm:"size:80"`
|
||||||
Temperature string
|
Temperature string `gorm:"size:10"`
|
||||||
Topic string
|
Topic string `gorm:"size:60"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
fmt.Println("Temperature init()")
|
||||||
|
mydb.DB.AutoMigrate(&Temperature{})
|
||||||
|
}
|
||||||
|
|
||||||
|
// TableName 会将 User 的表名重写为 `user`
|
||||||
|
func (Temperature) TableName() string {
|
||||||
|
return "temperature"
|
||||||
|
}
|
||||||
|
|
||||||
|
func SaveTemperature(temperature *Temperature) {
|
||||||
|
result := mydb.DB.Create(&temperature)
|
||||||
|
if result.Error != nil {
|
||||||
|
fmt.Println("Failed to create Temperature:", result.Error)
|
||||||
|
} else {
|
||||||
|
fmt.Println("Temperature created successfully!")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,47 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"go_mqtt/mydb"
|
||||||
|
"gorm.io/gorm"
|
||||||
|
)
|
||||||
|
|
||||||
|
//gorm:"column:column_name":指定字段在数据库中的列名。
|
||||||
|
//gorm:"primaryKey":指定字段为主键。
|
||||||
|
//gorm:"autoIncrement":指定字段为自增长。
|
||||||
|
//gorm:"unique":指定字段在数据库中唯一。
|
||||||
|
//gorm:"not null":指定字段不能为空。
|
||||||
|
//gorm:"default:value":指定字段的默认值。
|
||||||
|
//gorm:"size:length":指定字段的长度。
|
||||||
|
//gorm:"index":指定字段创建索引。
|
||||||
|
|
||||||
|
type User struct {
|
||||||
|
gorm.Model // 内置模型结构体,包含 ID、CreatedAt、UpdatedAt、DeletedAt 字段
|
||||||
|
|
||||||
|
Name string
|
||||||
|
Age int
|
||||||
|
Email string `gorm:"unique"` // 使用标签指定字段属性,这里表示 Email 字段在数据库中是唯一的
|
||||||
|
Address string
|
||||||
|
Order Order // 一对一关联,一个用户对应一个订单
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
fmt.Println("User init()")
|
||||||
|
mydb.DB.AutoMigrate(&User{})
|
||||||
|
}
|
||||||
|
|
||||||
|
// TableName 会将 User 的表名重写为 `user`
|
||||||
|
func (User) TableName() string {
|
||||||
|
return "user"
|
||||||
|
}
|
||||||
|
|
||||||
|
func SaveUser(uuid string) {
|
||||||
|
// 创建记录
|
||||||
|
product := User{Name: "Wenfei", Age: 20, Email: uuid, Address: "天等县弄在屯"}
|
||||||
|
result := mydb.DB.Create(&product)
|
||||||
|
if result.Error != nil {
|
||||||
|
fmt.Println("Failed to create product:", result.Error)
|
||||||
|
} else {
|
||||||
|
fmt.Println("User created successfully!")
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue