Go Gorm能成吗?
摘要:Go Gorm 安装 mariadb 数据库 安装数据库指令 # 不同系统下 # mac brew install mariadb -- 安装 brew services start mariadb -- 启动 # debain sudo
Go Gorm
安装 mariadb 数据库
安装数据库指令
# 不同系统下
# mac
brew install mariadb -- 安装
brew services start mariadb -- 启动
# debain
sudo apt install mariadb-server mariadb-client -y -- 安装
sudo systemctl start mariadb -- 启动
sudo systemctl enable mariadb -- 开机自启
# centos
# ubuntu
# 执行数据库初始化
mysql_secure_installation
执行创建超级用户指令
CREATE USER 'server'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'server'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Gorm
快速入门
文档:https://gorm.io/zh_CN
新建go工程,安装Gorm
go get -u gorm.io/gorm
go get -u gorm.io/driver/mysql
编写main.go
package main
import (
"fmt"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
type Product struct {
gorm.Model
Code string
Price uint
}
func main() {
// 1. 连接数据库
db, err := gorm.Open(mysql.New(mysql.Config{
DSN: "server:123456@tcp(127.0.0.1:3306)/test_gorm?charset=utf8mb4&parseTime=True&loc=Local", // DSN data source name
DefaultStringSize: 191, // string 类型字段的默认长度
DisableDatetimePrecision: true, // 禁用 datetime 精度,MySQL 5.6 之前的数据库不支持
DontSupportRenameIndex: true, // 重命名索引时采用删除并新建的方式,MySQL 5.7 之前的数据库和 MariaDB 不支持重命名索引
DontSupportRenameColumn: true, // 用 `change` 重命名列,MySQL 8 之前的数据库和 MariaDB 不支持重命名列
SkipInitializeWithVersion: false, // 根据当前 MySQL 版本自动配置
}), &gorm.Config{})
if err != nil {
panic("failed to connect database")
}
// 2. 数据迁移
db.AutoMigrate(&Product{})
// 3. 创建记录
db.Create(&Product{Code: "D42", Price: 100})
// 4. 查询记录
var product Product
db.First(&product, 1)
