设为首页 加入收藏

TOP

从0开始学golang--1.1--连接ms sql server数据库(一)
2019-03-27 00:08:10 】 浏览:349
Tags:开始 golang--1.1-- 连接 sql server 数据库
package main

 

import (
    "database/sql"
    "fmt"
    "strings"
)

 

import (
    _ "github.com/mattn/go-adodb"
)

 

type Mssql struct {
    *sql.DB
    dataSource string
    database string
    windows bool
    sa SA
}

 

type SA struct {
    user string
    passwd string
}

 

func (m *Mssql) Open() (err error) {
    var conf []string
    conf = append(conf, "Provider=SQLOLEDB")
    conf = append(conf, "Data Source="+m.dataSource)
    if m.windows {
        // Integrated Security=SSPI 这个表示以当前WINDOWS系统用户身去登录SQL SERVER服务器(需要在安装sqlserver时候设置),
        // 如果SQL SERVER服务器不支持这种方式登录时,就会出错。
        conf = append(conf, "integrated security=SSPI")
    }
    conf = append(conf, "Initial Catalog="+m.database)
    conf = append(conf, "user id="+m.sa.user)
    conf = append(conf, "password="+m.sa.passwd)

 

    m.DB, err = sql.Open("adodb", strings.Join(conf, ";"))
    if err != nil {
        return err
    }
    return nil
}

 

func main() {
    db := Mssql{
        dataSource: "数据库地址",
        database: "数据库名称",
        // windwos: true 为windows身份验证,false 必须设置sa账号和密码
        windows: false,
        sa: SA{
            user: "账号",
            passwd: "密码",
        },
    }
    // 连接数据库
    err := db.Open()
    if err != nil {
        fmt.Println("sql open:", err)
        return
    }
    defer db.Close()

 

    // 执行SQL语句
    rows, err := db.Query("SELECT FID,FAccount FROM dbo.TAccounts")
    if err != nil {
        fmt.Println("query: ", err)
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Go基础(3) 下一篇理解Golang哈希表Map的元素

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目