数据库改用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
|
||||
|
||||
import "time"
|
||||
import (
|
||||
"fmt"
|
||||
"go_mqtt/mydb"
|
||||
"time"
|
||||
)
|
||||
|
||||
type Temperature struct {
|
||||
Id int64
|
||||
CreateDate time.Time
|
||||
DataDate string
|
||||
DataHour string
|
||||
DataMinute string
|
||||
Humidity string
|
||||
LocationDesc string
|
||||
Temperature string
|
||||
Topic string
|
||||
DataDate string `gorm:"size:20"`
|
||||
DataHour string `gorm:"size:20"`
|
||||
DataMinute string `gorm:"size:20"`
|
||||
Humidity string `gorm:"size:10"`
|
||||
LocationDesc string `gorm:"size:80"`
|
||||
Temperature string `gorm:"size:10"`
|
||||
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