gin CRUD

2022/7/29 23:25:03

本文主要是介绍gin CRUD,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

gin CRUD

// units
package dal

//cxg 2022-7-29
import (
    "net/url"
    "svrGIN/db"
    "svrGIN/model"

    "github.com/gin-gonic/gin/binding"

    "strings"
    "svrGIN/log"

    "github.com/gin-gonic/gin"
)

func SelectUnits(ctx *gin.Context) {
    var arr model.TunitArray
    var r model.Res
    d := db.GetPG()
    where := ctx.Param("where")
    where, _ = url.QueryUnescape(where)
    where = strings.Trim(where, "/")
    if where != "" {
        where = " where " + where
    }
    rows, err := d.Query("select * from tunit" + where)
    if err != nil {
        r.Status = 500
        r.Message = "fail"
        r.Exception = err.Error()
        ctx.JSON(500, &r)
        log.Log("SelectUnits()", err)
        return
    }
    defer d.Close()
    for rows.Next() {
        var row model.Tunit
        rows.Scan(&row.Unitid, &row.Unitname)
        arr.Tunits = append(arr.Tunits, &row)
    }
    arr.Status = 200
    arr.Message = "success"
    ctx.JSON(200, &arr)
}

func InsertUnits(ctx *gin.Context) {
    var arr model.TunitArray
    var r model.Res
    ctx.ShouldBindBodyWith(&arr, binding.JSON)
    d := db.GetPG()
    tx, _ := d.Begin()
    for _, row := range arr.Tunits {
        s := "insert into tunit(unitid,unitname) values ('" + row.Unitid + "','" + row.Unitname + "')"
        _, err := tx.Exec(s)
        if err != nil {
            tx.Rollback()
            r.Status = 500
            r.Message = "fail"
            r.Exception = err.Error()
            ctx.JSON(500, &r)
            log.Log("InsertUnits()", err)
            return
        }
    }
    tx.Commit()
    r.Status = 200
    r.Message = "success"
    ctx.JSON(200, &r)
}

func UpdateUnits(ctx *gin.Context) {
    var arr model.TunitArray
    var r model.Res
    ctx.ShouldBindBodyWith(&arr, binding.JSON)
    d := db.GetPG()
    tx, _ := d.Begin()
    for _, row := range arr.Tunits {
        s := "update tunit set unitid='" + row.Unitid + "',unitname='" + row.Unitname + "' where unitid='" + row.Unitid + "'"
        _, err := tx.Exec(s)
        if err != nil {
            tx.Rollback()
            r.Status = 500
            r.Message = "fail"
            r.Exception = err.Error()
            ctx.JSON(500, &r)
            log.Log("UpdateUnits()", err)
            return
        }
    }
    tx.Commit()
    r.Status = 200
    r.Message = "success"
    ctx.JSON(200, &r)
}

func DeleteUnits(ctx *gin.Context) {
    var r model.Res
    d := db.GetPG()
    where := ctx.Param("where")
    where = strings.Trim(where, "/")
    s := "delete from tunit where unitid=" + where
    _, err := d.Exec(s)
    if err != nil {
        r.Status = 500
        r.Message = "fail"
        r.Exception = err.Error()
        ctx.JSON(500, &r)
        log.Log("DeleteUnits()", err)
        return
    }
    r.Status = 200
    r.Message = "success"
    ctx.JSON(200, &r)
}

 



这篇关于gin CRUD的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程