gorm连接及操作mssql server 数据库

Golang 归档:201907
普通
浏览:8032
2019-07-15 13:09:00
gorm连接及操作mssql server 数据库

mssql.go

代码中使用了beego框架

package main

import (
    "fmt"

    "github.com/astaxie/beego"

    "github.com/jinzhu/gorm"
    _ "github.com/jinzhu/gorm/dialects/mssql"
)

//Mssql Mssql
type Mssql struct {
    DataBase *gorm.DB
}

var (
    dbName   = "test"
    user     = beego.AppConfig.DefaultString(dbName+"::user", "sa")
    password = beego.AppConfig.DefaultString(dbName+"::password", "123456")
    host     = beego.AppConfig.DefaultString(dbName+"::host", "192.168.0.200")
    port     = beego.AppConfig.DefaultInt(dbName+"::port", 1433)
    dbname   = beego.AppConfig.DefaultString(dbName+"::dbname", "test")
)

//Connect Connect
func (o *Mssql) Connect() {
    connectionString := fmt.Sprintf("server=%s;user id=%s;password=%s;port=%d;database=%s",
        host, user, password, port, dbname)
    db, err := gorm.Open("mssql", connectionString)
    if err != nil {
        panic("failed to connect database")
    }
    db.LogMode(true)
    db.CommonDB()
    o.DataBase = db
}

使用的model.go

//InfoBase InfoBase
type InfoBase struct {
    NID     int64  `gorm:"column:nid"`
    Context string `gorm:"column:context"`
}

//TableName 表名
func (m *InfoBase) TableName() string {
    return "tbl_news_ex"
}

//GetList 取所有数据列表
func (m *InfoBase) GetList() (datas []*InfoBase, err error) {
    mssql := new(Mssql)
    mssql.Connect()
    db := mssql.DataBase.Model(m)
    defer db.Close()
    err = db.Order("nid desc").Select("nid,context").Find(&datas).Error

    return
}

注意

因mssql top与mysql的 limit方式不同,如果需要取top 100,请使用:

db.Order("nid desc").Select("top 100 nid,context").Find(&datas).Error
注意事项
  • 此文章对你有帮助,对作者表示感谢(微信):
  • 本文地址:https://22v.net/article/3245/
  • 转载本文时,请注明转载自“SamBlog”的字样。
  • 如此文章有损您的合法权益,请使用页面底部的邮箱与我取得联系。
分类目录
文章归档
友情站点