美文网首页
gorm-V2-01-连接和建表

gorm-V2-01-连接和建表

作者: 玄德公笔记 | 来源:发表于2022-02-13 20:27 被阅读0次

1. 连接数据库

package main

import (
    "database/sql"
    "fmt"
    "gorm.io/driver/mysql"
    "gorm.io/gorm"
    "time"
)

func main() {
    _,sqlDB,_ := connect()
    sqlDB.Close()
}

func connect() (db *gorm.DB,sqlDB *sql.DB,err error) {
    dsn := "root:40010355@tcp(127.0.0.1:3306)/crow?charset=utf8&parseTime=True&loc=Local"
    db, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})
    sqlDB,_ = db.DB()
    if err != nil {
        fmt.Printf(err.Error())
        defer sqlDB.Close()
    }else {
        fmt.Printf("OK\n")
        sqlDB.SetMaxIdleConns(10)
        sqlDB.SetMaxOpenConns(100)
        sqlDB.SetConnMaxLifetime(time.Hour)
    }
    return
}

2 创建表

2.1 创建模型

  • 结构体名和表名相对应(关系见 2.3)
  • 结构体成员和列名对应,如:LiuBei ---> liu_bei
type User struct {
    ID int64
    Age int64
    Name string
}

2.2 创建表

可将 “1. 连接数据库” 的示例代码中main函数替换如下

func main() {
    db,sqlDB,_ := connect()
    defer sqlDB.Close()
    
    db.Migrator().CreateTable(&User{})

}
  • 生成表结构如下
mysql> desc users;
+-------+------------+------+-----+---------+----------------+
| Field | Type       | Null | Key | Default | Extra          |
+-------+------------+------+-----+---------+----------------+
| id    | bigint(20) | NO   | PRI | NULL    | auto_increment |
| age   | bigint(20) | YES  |     | NULL    |                |
| name  | longtext   | YES  |     | NULL    |                |
+-------+------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

2.3 模型和表名的对应关系

结构体 库名
LiuBei liu_beis
Guan_Yu guan_yu
ZhangFei01 zhang_fei01

说明:以驼峰定义结构体,库名会变成小写中间以”_”分割,结尾加“s”。如果以数字结尾则不会加"s"。

2.4 自定义表名

添加如下代码

func(User) TableName() string {
    return "ha_ha"
}

之后生成库名为"ha_ha"

相关文章

  • gorm-V2-01-连接和建表

    1. 连接数据库 2 创建表 2.1 创建模型 结构体名和表名相对应(关系见 2.3) 结构体成员和列名对应,如:...

  • hive笔记之beeline

    beeline 连接hive 建表 查询 聚合运算 一般用beeline连接hive进行建表 !connect j...

  • MySql基本语句

    -建表、删除表 -更改表结构 -基本查询 -更新操作 -删除操作 -插入数据 -聚合函数 -连接语句 -Havin...

  • gorm-V1-连接和建表

    1. 连接数据库 1.1 v1 版本 2 创建表 连接代码同上,main函数中添加创建代码如下: 添加一个结构体 ...

  • Hive 基本语法

    建表 通用建表 利用查询结果建表 建表并复制表结构 Tips TABLE 和 EXTERNAL TABLE 主要区...

  • 学习篇二:code first (demo)

    第一步:建数据库,建表(不建表,app.config里连接写好也可) 第二步:新建项目 在 - 工具 - 库程序包...

  • python 连接mysql 建表建库实例

    NULL 为空 ,DEFAULT 默认值 运行时会先要求在navicat 中先手动新建 数据库名效果: in...

  • 网络日志的Hive简单查询

    测试数据 建表语句 加载数据 连接查询 使用查询结果创建新表

  • 数据库的左链接右连接和内连接

    建表语句: 表测试数据: 一、内连接 语句:select * from a_table a inner join ...

  • 2020-07-06   左连接右连接

    左连接,返回包括左表中的所有记录和右表中连接字段相等的记录。 右连接,返回包括右表中的所有记录和左表中连接字段相等...

网友评论

      本文标题:gorm-V2-01-连接和建表

      本文链接:https://www.haomeiwen.com/subject/ywxzkrtx.html