登录
首页 >  Golang >  Go问答

怎么用Golang将MySQL表转储为JSON

来源:Golang技术栈

时间:2023-03-07 08:11:07 188浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个Golang开发实战,手把手教大家学习《怎么用Golang将MySQL表转储为JSON》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

问题内容

怎么用Golang将MySQL表转储为JSON

正确答案

要将 MySQL 表转储为 JSON,需要使用 Golang 中的 MySQL 和 encoding/json 包。以下是一个简单的示例代码:

package main

import (
    "database/sql"
    "encoding/json"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
    "os"
)

type User struct {
    ID   int    `json:"id"`
    Name string `json:"name"`
    Age  int    `json:"age"`
}

func main() {
    // 连接 MySQL 数据库
    db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/database_name")
    if err != nil {
        fmt.Println(err)
        return
    }
    defer db.Close()

    // 查询数据
    rows, err := db.Query("SELECT id, name, age FROM users")
    if err != nil {
        fmt.Println(err)
        return
    }
    defer rows.Close()

    // 构造 User 切片
    var users []User
    for rows.Next() {
        var id, age int
        var name string
        err := rows.Scan(&id, &name, &age)
        if err != nil {
            fmt.Println(err)
            return
        }
        users = append(users, User{id, name, age})
    }
    if err := rows.Err(); err != nil {
        fmt.Println(err)
        return
    }

    // 将 User 切片转换为 JSON
    jsonData, err := json.Marshal(users)
    if err != nil {
        fmt.Println(err)
        return
    }

    // 将 JSON 写入文件
    file, err := os.Create("users.json")
    if err != nil {
        fmt.Println(err)
        return
    }
    defer file.Close()

    _, err = file.Write(jsonData)
    if err != nil {
        fmt.Println(err)
        return
    }

    fmt.Println("转储完成")
}

也可以使用gorm框架实现,使用mvc和dao实现结构分层,这里是一个实例。

终于介绍完啦!小伙伴们,这篇关于《怎么用Golang将MySQL表转储为JSON》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表