首页 >后端开发 >Golang >如何使用Golang,Gin和Postgresql构建CRUD应用程序

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

Susan Sarandon
Susan Sarandon原创
2025-01-26 14:03:09436浏览

本教程向您展示了如何使用Golang,Gin Framework和PostgreSQL构建简单的CRUD(创建,读,更新,删除)应用程序。 您将学会管理存储在PostgreSQL数据库中的数据。

How to Build a CRUD App with Golang, Gin, and PostgreSQL

目录的

  1. 简介
  2. >先决条件
  3. 项目结构
  4. >项目设置
  5. >数据库和表创建
  6. 实施Crud处理程序
  7. API测试
  8. 结论

1。简介

本指南利用轻量级Golang Web框架Gin创建API端点。 该应用程序通过PGX驱动程序与PostgreSQL数据库进行交互。 假定对Golang和Rest API的基本熟悉。

2。先决条件

开始之前,请确保您有:

    golang(版本1.20或更高版本)
  • > postgresql(任何版本)
  • > Postman(或类似的API测试工具)
  • >代码编辑器(例如,VS代码)

3。项目结构

组织您的项目如下:

<code>crud-app/
├── main.go            
├── config/
│   └── database.go    
├── controllers/
│   └── item.go        
├── models/
│   └── item.go        
├── routes/
│   └── routes.go      
├── go.mod             
└── go.sum             </code>

4。项目设置

  1. 创建项目目录并初始化一个GO模块:

    <code class="language-bash">mkdir crud-app
    cd crud-app
    go mod init github.com/yourusername/crud-app  // Replace with your GitHub username</code>
  2. 安装必要的软件包:

    <code class="language-bash">go get github.com/gin-gonic/gin
    go get github.com/jackc/pgx/v5</code>

5。数据库和表创建

  1. 创建一个postgresql数据库(例如,

    )。crud_app>

  2. 连接到数据库,并创建

    >表:> items

    <code class="language-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处理程序

6.1数据库连接(config/database.go):

>

6.2模型定义(型号/item.go):

>
<code class="language-go">package config

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

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

var DB *sql.DB

func ConnectDatabase() {
    // ... (Connection string with your credentials) ...
}</code>

6.3 crud处理程序(控制器/item.go):(示例:create)

>
<code class="language-go">package models

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

实现类似的功能,以读取,更新和删除项目。> 6.4路由定义(路由/路由。

<code class="language-go">package controllers

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

func CreateItem(c *gin.Context) {
    // ... (Implementation for creating a new item) ...
}</code>

6.5主应用程序(main.go):

>

7。 API测试

<code class="language-go">package routes

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

func SetupRoutes(router *gin.Engine) {
    router.POST("/items", controllers.CreateItem)
    // ... (Add routes for other CRUD operations) ...
}</code>

运行应用程序(),并使用邮递员或类似工具测试端点。

<code class="language-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")
}</code>
8。结论

>您已经成功创建了一个基本的CRUD应用程序。请记住要填写缺失的CRUD处理程序实现,并将数据库连接字符串调整到您的环境中。 该基础可以通过更高级的功能扩展。

>

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn