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