README.md 2.0 KB

数据服务SDK使用文档

入门

数据服务SDK主要用于对接数据服务,实现数据的增删改查操作,使用sdk前,需要通过datactl在数据服务中预先创建好对应的Namespace,DataSource和

DataContainer资源

package main

import (
	"fmt"
	"git.sxidc.com/service-supports/ds-sdk/sdk"
	"git.sxidc.com/service-supports/ds-sdk/sdk/raw_sql_tpl"
	"strconv"
	"time"
)

const (
	token      = "IpTTwAQweh/BP51fz5CzWKQFaXHvZe6ewvk6yOcAOkU="
	address    = "localhost"
	httpPort   = "10000"
	grpcPort   = "10001"
	namespace  = "ns-sdk-demo"
	dataSource = "ds-sdk-demo"
	tableName  = "test.classes"
)

type Class struct {
	ID              string
	Name            string
	StudentNum      int
	CreatedTime     time.Time
	LastUpdatedTime time.Time
}

type ClassInfo struct {
	ID              string    `mapstructure:"id"`
	Name            string    `mapstructure:"name"`
	CreatedTime     time.Time `mapstructure:"created_time"`
	LastUpdatedTime time.Time `mapstructure:"last_updated_time"`
}

func main() {
	err := sdk.InitInstance(token, address, httpPort, grpcPort, namespace, dataSource)
	if err != nil {
		panic(err)
	}

	defer func() {
		err := sdk.DestroyInstance()
		if err != nil {
			panic(err)
		}
	}()

	class := &Class{
		ID:         "id" + strconv.Itoa(time.Now().Nanosecond()),
		Name:       "test",
		StudentNum: 10,
	}

	err = sdk.InsertEntity(sdk.GetInstance(), tableName, class)
	if err != nil {
		panic(err)
	}

	tableRow, err := sdk.QueryOne(sdk.GetInstance(), &raw_sql_tpl.QueryOneExecuteParams{
		TableName:     tableName,
		SelectColumns: []string{"id", "name", "created_time", "last_updated_time"},
		Conditions:    raw_sql_tpl.NewConditions().Equal("id", class.ID),
	})
	if err != nil {
		panic(err)
	}

	fmt.Println(tableRow)

	classInfo := new(ClassInfo)
	err = sdk.ParseSqlResults(tableRow, classInfo)
	if err != nil {
		panic(err)
	}

	fmt.Println(classInfo)

	err = sdk.DeleteEntity(sdk.GetInstance(), tableName, class)
	if err != nil {
		panic(err)
	}
}