首页 > 后端开发 > Golang > 正文

如何使用Golang,Gin和Postgresql构建CRUD应用程序

碧海醫心
发布: 2025-01-26 14:36:26
原创
928人浏览过

如何使用golang,gin和postgresql构建crud应用程序

本教程演示如何使用Go语言、Gin框架和PostgreSQL数据库构建一个简单的CRUD (创建、读取、更新、删除) 应用。最终,您将得到一个可以管理PostgreSQL数据库中数据的基本应用。

目录

  1. 简介
  2. 前提条件
  3. 项目结构
  4. 项目设置
  5. 创建数据库和表
  6. 编写CRUD处理程序
  7. 测试API
  8. 总结

1. 简介

我们将使用Gin (一个轻量级的Go Web框架) 构建API端点。应用将连接到PostgreSQL数据库,并使用pgx驱动程序进行数据库交互。

立即学习go语言免费学习笔记(深入)”;

本教程面向初学者,假设您已具备Go语言和REST API的基础知识。

2. 前提条件

开始之前,请确保您的系统已安装以下软件:

  • Go语言 (1.20或更高版本)
  • PostgreSQL (任意版本)
  • Postman或其他API测试工具
  • 代码编辑器 (例如VS Code)

3. 项目结构

项目的文件夹结构如下:

<code>crud-app/
├── main.go            # 应用入口
├── config/
│   └── database.go    # 数据库连接配置
├── controllers/
│   └── item.go        # "item"资源的CRUD处理程序
├── models/
│   └── item.go        # "item"数据库模型
├── routes/
│   └── routes.go      # API路由定义
├── go.mod             # Go模块文件
└── go.sum             # 依赖文件</code>
登录后复制

此结构简单易扩展。您可以稍后添加更多资源(例如“用户”或“订单”),而不会影响项目结构。

4. 项目设置

首先,创建项目文件夹并初始化Go模块:

<code class="bash">mkdir crud-app
cd crud-app
go mod init github.com/yourusername/crud-app</code>
登录后复制

然后,安装必要的包:

<code class="bash">go get github.com/gin-gonic/gin
go get github.com/jackc/pgx/v5</code>
登录后复制

5. 创建数据库和表

创建一个PostgreSQL数据库和一个表,例如名为“items”的表:

PHP5 和 MySQL 圣经
PHP5 和 MySQL 圣经

本书是全面讲述PHP与MySQL的经典之作,书中不但全面介绍了两种技术的核心特性,还讲解了如何高效地结合这两种技术构建健壮的数据驱动的应用程序。本书涵盖了两种技术新版本中出现的最新特性,书中大量实际的示例和深入的分析均来自于作者在这方面多年的专业经验,可用于解决开发者在实际中所面临的各种挑战。

PHP5 和 MySQL 圣经 466
查看详情 PHP5 和 MySQL 圣经
<code class="sql">CREATE DATABASE crud_app;

\c crud_app

CREATE TABLE items (
    id SERIAL PRIMARY KEY,
    name TEXT NOT NULL,
    description TEXT,
    price NUMERIC(10, 2)
);</code>
登录后复制

6. 编写CRUD处理程序

数据库连接配置

config/database.go中:

<code class="go">package config

import (
    "database/sql"
    "fmt"
    "log"

    _ "github.com/jackc/pgx/v5/stdlib"
)

var db *sql.DB

func ConnectDatabase() {
    var err error
    dsn := "postgres://username:password@localhost:5432/crud_app"
    db, err = sql.Open("pgx", dsn)
    if err != nil {
        log.Fatalf("无法连接到数据库: %v", err)
    }

    fmt.Println("数据库连接成功!")
}</code>
登录后复制

请使用您的PostgreSQL用户名和密码更新dsn字符串。

模型定义

models/item.go中:

<code class="go">package models

type Item struct {
    ID          int     `json:"id"`
    Name        string  `json:"name"`
    Description string  `json:"description"`
    Price       float64 `json:"price"`
}</code>
登录后复制

处理程序编写

controllers/item.go中:

<code class="go">package controllers

import (
    "crud-app/config"
    "crud-app/models"
    "github.com/gin-gonic/gin"
    "net/http"
)

// 创建新的item
func CreateItem(c *gin.Context) {
    var item models.Item
    if err := c.ShouldBindJSON(&item); err != nil {
        c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
        return
    }

    query := "INSERT INTO items (name, description, price) VALUES ($1, $2, $3) RETURNING id"
    err := config.db.QueryRow(query, item.Name, item.Description, item.Price).Scan(&item.ID)
    if err != nil {
        c.JSON(http.StatusInternalServerError, gin.H{"error": "创建item失败"})
        return
    }

    c.JSON(http.StatusCreated, item)
}</code>
登录后复制

您可以编写类似的处理程序来读取、更新和删除项目。

路由定义

routes/routes.go中:

<code class="go">package routes

import (
    "crud-app/controllers"
    "github.com/gin-gonic/gin"
)

func SetupRoutes(router *gin.Engine) {
    router.POST("/items", controllers.CreateItem)
    // 添加更多路由用于读取、更新、删除
}</code>
登录后复制

主程序

main.go中:

<code class="go">package main

import (
    "crud-app/config"
    "crud-app/routes"
    "github.com/gin-gonic/gin"
)

func main() {
    config.ConnectDatabase()

    r := gin.Default()
    routes.SetupRoutes(r)

    r.Run(":8080") // 在8080端口启动服务器
}</code>
登录后复制

7. 测试API

启动服务器:

<code class="bash">go run main.go</code>
登录后复制

使用Postman或curl测试端点。例如,创建一个项目:

POST http://localhost:8080/items

请求体:

<code class="json">{
  "name": "Laptop",
  "description": "一台强大的笔记本电脑",
  "price": 1200.50
}</code>
登录后复制

8. 总结

恭喜!您已成功使用Go、Gin和PostgreSQL构建了一个基本的CRUD应用。此结构易于扩展,您可以添加更多功能,例如身份验证、日志记录或中间件。 如有需要更详细的步骤或附加功能,请随时提出!

以上就是如何使用Golang,Gin和Postgresql构建CRUD应用程序的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号