美文网首页
Beego使用原生SQL

Beego使用原生SQL

作者: 懒人程序猿 | 来源:发表于2020-03-23 22:13 被阅读0次

创建RawDemo

/*
------------------------------------------------------
使用 Raw SQL 查询,无需使用 ORM 表定义
多数据库,都可直接使用占位符号 ?,自动转换
查询时的参数,支持使用 Model Struct 和 Slice, Array
------------------------------------------------------
 */

type RawDemo struct {
    Id int `json:"id"`
    Name string `json:"name"`
    Email string `json:"email"`
    Mobile string `json:"mobile"`
    Age int `json:"age"`
    IsDelete int `json:"is_delete"`
    Sex int `json:"sex"`
    Qq int `json:"qq"`
    Status int `json:"status"`
}

QueryRow查询

func GetRawDemoQueryRowById(id int) RawDemo {
    var rawDemo RawDemo
    err := orm.NewOrm().Raw("SELECT * FROM demo WHERE id = ?", id).QueryRow(&rawDemo)
    if err == nil {
        //
    }
    return rawDemo
}
image.png

QueryRows查询

func GetRawDemoQueryRowsByStatus(status int) ([]RawDemo, int64) {
    var rawDemo []RawDemo
    num, err := orm.NewOrm().Raw("SELECT * FROM demo WHERE status = ?", status).QueryRows(&rawDemo)
    if err == nil {
        //
    }
    return rawDemo, num
}
image.png

Values查询

func GetRawDemoByStatus(status int) ([]orm.Params, int64) {
    var maps []orm.Params
    num, err := orm.NewOrm().Raw("SELECT * FROM demo WHERE status = ?", status).Values(&maps)
    if err == nil {
        //
    }
    return maps, num
}
image.png

更新数据

func UpdateRawDemo(id int) int64 {
    res, err := orm.NewOrm().Raw("UPDATE demo SET `name` = '孙权' WHERE id = ?", id).Exec()
    if err == nil {
        num, _ := res.RowsAffected()
        if num > 0 {
            return num
        }
    }
    return 0
}

添加数据

func InsertRawDemo() int64 {
    /*
    参数传递1
    res, err := orm.NewOrm().Raw("INSERT INTO demo(`name`, `email`, `mobile`, `age`, `is_delete`, `sex`, `qq`, `status`) " +
    "VALUES(?, ?, ?, ?, ?, ?, ?, ?)", "孙权", "hainan@126.com", "15811111111", 20, 1, 1, 333999999, 1).Exec()
     */

    // 参数传递2
    values := []string{"孙权", "hainan@126.com", "15822222222", "20", "1", "1", "333888888", "1"}
    res, err := orm.NewOrm().Raw("INSERT INTO demo(`name`, `email`, `mobile`, `age`, `is_delete`, `sex`, `qq`, `status`) " +
    "VALUES(?, ?, ?, ?, ?, ?, ?, ?)", values).Exec()
    if err == nil {
        num, _ := res.LastInsertId()
        if num > 0 {
            return num
        }
    }
    return 0
}

删除数据

func DeleteRawDemoById(id int) int64 {
    res, err := orm.NewOrm().Raw("DELETE FROM demo WHERE id = ?", id).Exec()
    if err == nil {
        num, _ := res.RowsAffected()
        if num > 0 {
            return num
        }
    }
    return 0
}

相关文章

  • Beego使用原生SQL

    创建RawDemo QueryRow查询 QueryRows查询 Values查询 更新数据 添加数据 删除数据

  • 使用beego开发时候需要注意的地方

    一、多表查询的时候建议使用原生sql查询,若使用beego提供的orm表定义的方法查询,返回字段形式固定,对于有代...

  • go-restful实现restful接口

    之前一直使用使用beego和原生的http来实现http接口,其中beego在路由上也提供了灵活的注册方式,但是最...

  • 3.5 Beego原生sql查询

    使用 Raw SQL 查询,无需使用 ORM 表定义 多数据库,都可直接使用占位符号 ?,自动转换 查询时的参数,...

  • django 使用原生sql及分页

    python3 django 使用原生sql及分页 django 使用原生sql及分页,类似于django res...

  • Go后台项目实战

    本项目完全使用原生开发,没有使用任何WEB框架(如:gin,beego,Martini等),和ORM(如:gorm...

  • android基础巩固之db存储

    db文件导出 db创建 dao语句对比 (原生api和sql语句使用对比 ) 原生api sql语句 增强型的封...

  • laravel5.8(十八)laravel 解决groupBy时

    使用原生sql查询数据,语句如下: 使用laravel执行的时候,报错: 但是我上边的sql放在phpmyadmi...

  • 【Go】sql拼接库

    sql拼接库 在一些web项目开发中,涉及到数据库操作,使用原生的sql或者接近原生的sqlx,会有大量的sql语...

  • tp5获取数据表前缀

    在使用原生sql语句,获取表前缀 使用 __PREFIX__ 获取表前缀

网友评论

      本文标题:Beego使用原生SQL

      本文链接:https://www.haomeiwen.com/subject/jfigyhtx.html