Salmon的全栈知识 Salmon的全栈知识
首页
  • JavaSE
  • JavaWeb
  • Spring生态
  • JUC
  • JVM
  • Netty
  • Java各版本特性
  • 23种设计模式
  • Maven
  • Java常用框架
  • Dubbo
  • OpenFeign
  • Nacos
  • Zookeeper
  • Sentinel
  • Seata
  • SpringCloud Gateway
  • Apollo
  • Eureka
  • Go基础
  • Gin
  • SQL数据库

    • MySQL
    • Oracle
  • NoSQL数据库

    • Redis
    • MongoDB
    • ElasticSearch
  • 消息中间件

    • RabbitMQ
    • RocketMQ
    • Kafka
    • ActiveMQ
    • MQTT
    • NATS
  • 网关中间件

    • Nginx
  • Linux
  • Docker
  • Git
  • K8s
  • Solidity
  • Java
  • 计算机网络
  • 操作系统
GitHub (opens new window)
首页
  • JavaSE
  • JavaWeb
  • Spring生态
  • JUC
  • JVM
  • Netty
  • Java各版本特性
  • 23种设计模式
  • Maven
  • Java常用框架
  • Dubbo
  • OpenFeign
  • Nacos
  • Zookeeper
  • Sentinel
  • Seata
  • SpringCloud Gateway
  • Apollo
  • Eureka
  • Go基础
  • Gin
  • SQL数据库

    • MySQL
    • Oracle
  • NoSQL数据库

    • Redis
    • MongoDB
    • ElasticSearch
  • 消息中间件

    • RabbitMQ
    • RocketMQ
    • Kafka
    • ActiveMQ
    • MQTT
    • NATS
  • 网关中间件

    • Nginx
  • Linux
  • Docker
  • Git
  • K8s
  • Solidity
  • Java
  • 计算机网络
  • 操作系统
GitHub (opens new window)
npm

(进入注册为作者充电)

  • Gin 介绍
  • Gin 环境搭建
  • golang 程序的热加载
  • Gin 框架中的路由
  • Gin HTML 模板渲染
  • 静态文件服务
  • 路由详解
  • Gin 中自定义控制器
  • Gin 中间件
  • Gin 中自定义 Model
  • Gin 文件上传
  • Gin 中的 Cookie
  • Gin 中的 Session
  • Gin 中使用 GORM 操作 mysql 数据库
  • 原生 SQL 和 SQL 生成器
  • Gin 中使用 GORM 实现表关联查询
  • GORM 中使用事务
  • Gin 中使用 go-ini 加载.ini 配置文件
    • 1、go-ini 介绍
    • 2、go-ini 使用
      • 2.1、新建 conf/app.ini
      • 2.2、编写 main.go
      • 2.3、从.ini 中读取 mysql 配置
  • 《Gin》笔记
Salmon
2025-04-05
目录

Gin 中使用 go-ini 加载.ini 配置文件

# 1、go-ini 介绍

go-ini 官方介绍,go-ini 是地表 最强大、最方便 和 最流行 的 Go 语言 INI 文件操作库。

Github 地址:https://github.com/go-ini/ini (opens new window)

官方文档:https://ini.unknwon.io/ (opens new window)

# 2、go-ini 使用

# 2.1、新建 conf/app.ini

现在,我们编辑 my.ini 文件并输入以下内容

app_name = itying gin
# possible values: DEBUG, INFO, WARNING, ERROR, FATAL
log_level = DEBUG

[mysql]
ip = 192.168.0.6
port = 3306
user = root
password = 123456
database = gin

[redis]
ip = 127.0.0.1
port = 6379

# 2.2、编写 main.go

接下来我们需要编写 main.go 文件来操作刚才创建的配置文件。

package main

import (
    "fmt"
    "gopkg.in/ini.v1"
    "os"
)

func main() {
    cfg, err := ini.Load("./conf/app.ini")
    if err != nil {
       fmt.Printf("Fail to read file: %v", err)
       os.Exit(1)
    }
    // 典型读取操作,默认分区可以使用空字符串表示
    fmt.Println("App Mode:", cfg.Section("").Key("app_name").String())
    fmt.Println("Data Path:", cfg.Section("mysql").Key("ip").String())
    // 差不多了,修改某个值然后进行保存
    cfg.Section("").Key("app_name").SetValue("itying gin")
    cfg.SaveTo("./conf/app.ini")
}

# 2.3、从.ini 中读取 mysql 配置

https://gorm.io/zh_CN/docs/connecting_to_the_database.html (opens new window)

package models

import (
    "fmt"
    "gopkg.in/ini.v1"
    "gorm.io/driver/mysql"
    "gorm.io/gorm"
    "os"
)

var DB *gorm.DB
var err error

func init() {
    cfg, err := ini.Load("./conf/app.ini")
    if err != nil {
       fmt.Printf("Fail to read file: %v", err)
       os.Exit(1)
    }
    ip := cfg.Section("mysql").Key("ip").String()
    port := cfg.Section("mysql").Key("port").String()
    user := cfg.Section("mysql").Key("user").String()
    password := cfg.Section("mysql").Key("password").String()
    database := cfg.Section("mysql").Key("database").String()
    dsn := fmt.Sprintf("%v:%v@tcp(%v:%v)/%v?charset=utf8mb4&parseTime=True&loc=Local ", user, password, ip, port, database)
    fmt.Println(dsn)
    DB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{
       QueryFields: true, //打印 sql
       //SkipDefaultTransaction: true, //禁用事务
    })
    if err != nil {
       fmt.Println(err)
    }
}
上次更新: 2025/07/23, 01:37:33
GORM 中使用事务

← GORM 中使用事务

Theme by Vdoing | Copyright © 2022-2025 Salmon's Blog
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式