# 数据服务SDK使用文档 ## 入门 数据服务SDK主要用于对接数据服务,实现数据的增删改查操作,使用sdk前,需要通过datactl在数据服务中预先创建好对应的Namespace,DataSource和 DataContainer资源 ```go 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) } } ```