加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

godbc中使用mssql的小实例

发布时间:2020-12-16 18:39:25 所属栏目:大数据 来源:网络整理
导读:pre name="code" class="plain"package mainimport ("fmt""github.com/go-xorm/xorm"_ "github.com/lunny/godbc")func main() {Engin,err := xorm.NewEngine("odbc","driver={SQL Server};Server=127.0.0.1;Database=Test; uid=sa; pwd=123456;")if err != n
<pre name="code" class="plain">package main

import (
	"fmt"
	"github.com/go-xorm/xorm"
	_ "github.com/lunny/godbc"
)

func main() {
	Engin,err := xorm.NewEngine("odbc","driver={SQL Server};Server=127.0.0.1;Database=Test; uid=sa; pwd=123456;")
	if err != nil {
		fmt.Println("新建引擎",err)
		return
	}
	fmt.Println(Engin.Ping())
}

 
package xorm

import (
	"database/sql"
	"testing"

	_ "github.com/lunny/godbc"
)

const mssqlConnStr = "driver={SQL Server};Server=192.168.20.135;Database=xorm_test; uid=sa; pwd=1234;"

func newMssqlEngine() (*Engine,error) {
	return NewEngine("odbc",mssqlConnStr)
}

func TestMssql(t *testing.T) {
	engine,err := newMssqlEngine()
	defer engine.Close()
	if err != nil {
		t.Error(err)
		return
	}
	engine.ShowSQL = showTestSql
	engine.ShowErr = showTestSql
	engine.ShowWarn = showTestSql
	engine.ShowDebug = showTestSql

	testAll(engine,t)
	testAll2(engine,t)
}

func TestMssqlWithCache(t *testing.T) {
	engine,err := newMssqlEngine()
	defer engine.Close()
	if err != nil {
		t.Error(err)
		return
	}
	engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(),1000))
	engine.ShowSQL = showTestSql
	engine.ShowErr = showTestSql
	engine.ShowWarn = showTestSql
	engine.ShowDebug = showTestSql

	testAll(engine,t)
}

func newMssqlDriverDB() (*sql.DB,error) {
	return sql.Open("odbc",mssqlConnStr)
}

const (
	createTableMssql = `IF NOT EXISTS (SELECT [name] FROM sys.tables WHERE [name] = 'big_struct' ) CREATE TABLE
		"big_struct" ("id" BIGINT PRIMARY KEY IDENTITY NOT NULL,"name" VARCHAR(255) NULL,"title" VARCHAR(255) NULL,"age" VARCHAR(255) NULL,"alias" VARCHAR(255) NULL,"nick_name" VARCHAR(255) NULL);
		`

	dropTableMssql = "IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'big_struct') and OBJECTPROPERTY(id,N'IsUserTable') = 1) DROP TABLE IF EXISTS `big_struct`;"
)

func BenchmarkMssqlDriverInsert(t *testing.B) {
	doBenchDriver(newMssqlDriverDB,createTableMssql,dropTableMssql,doBenchDriverInsert,t)
}

func BenchmarkMssqlDriverFind(t *testing.B) {
	doBenchDriver(newMssqlDriverDB,doBenchDriverFind,t)
}

func BenchmarkMssqlNoCacheInsert(t *testing.B) {
	engine,err := newMssqlEngine()
	defer engine.Close()
	if err != nil {
		t.Error(err)
		return
	}
	//engine.ShowSQL = true
	doBenchInsert(engine,t)
}

func BenchmarkMssqlNoCacheFind(t *testing.B) {
	engine,err := newMssqlEngine()
	defer engine.Close()
	if err != nil {
		t.Error(err)
		return
	}
	//engine.ShowSQL = true
	doBenchFind(engine,t)
}

func BenchmarkMssqlNoCacheFindPtr(t *testing.B) {
	engine,err := newMssqlEngine()
	defer engine.Close()
	if err != nil {
		t.Error(err)
		return
	}
	//engine.ShowSQL = true
	doBenchFindPtr(engine,t)
}

func BenchmarkMssqlCacheInsert(t *testing.B) {
	engine,1000))

	doBenchInsert(engine,t)
}

func BenchmarkMssqlCacheFind(t *testing.B) {
	engine,1000))

	doBenchFind(engine,t)
}

func BenchmarkMssqlCacheFindPtr(t *testing.B) {
	engine,1000))

	doBenchFindPtr(engine,t)
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读