【go语言开发】gorm库连接和操作mysql,实现一个简单的用户注册和登录
package main
import (
"fmt"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
type User struct {
gorm.Model
Username string `gorm:"type:varchar(100);not null;index:idx_username"`
Password string `gorm:"type:varchar(100);not null"`
}
func main() {
dsn := "user:password@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic("数据库连接失败")
}
// 检查数据库迁移
err = db.AutoMigrate(&User{})
if err != nil {
panic("数据库迁移失败")
}
// 用户注册
register := func(username, password string) {
user := User{Username: username, Password: password}
result := db.Create(&user)
if result.Error != nil {
fmt.Println("注册失败:", result.Error)
} else {
fmt.Println("注册成功")
}
}
// 用户登录
login := func(username, password string) bool {
var user User
result := db.Where("username = ?", username).First(&user)
if result.Error != nil {
fmt.Println("登录失败:", result.Error)
return false
}
if user.Password == password {
fmt.Println("登录成功")
return true
}
fmt.Println("密码错误")
return false
}
// 示例注册
register("user1", "pass123")
// 示例登录
login("user1", "pass123")
}
这段代码首先定义了一个User结构体,用于表示用户信息。然后,它尝试连接到MySQL数据库,并对User结构体执行数据库迁移。接着,定义了两个函数:register用于用户注册,login用于用户登录。最后,代码示例了如何注册和登录用户。
评论已关闭