ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

gin CRUD

2022-07-29 22:02:34  阅读:179  来源: 互联网

标签:arr err CRUD ctx JSON gin where row


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)
}

 

标签:arr,err,CRUD,ctx,JSON,gin,where,row
来源: https://www.cnblogs.com/hnxxcxg/p/16533684.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有