数据服务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)
}
}