package main import ( "fmt" "git.sxidc.com/go-tools/utils/strutils" "git.sxidc.com/service-supports/ds-sdk/sdk" "git.sxidc.com/service-supports/ds-sdk/sql" "git.sxidc.com/service-supports/ds-sdk/sql/sql_tpl" "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) } }() now := time.Now() graduatedTime := now.AddDate(3, 0, 0) classID := strutils.SimpleUUID() studentIDs := []string{strutils.SimpleUUID(), strutils.SimpleUUID(), strutils.SimpleUUID()} class := &Class{ IDField: IDField{ID: classID}, Name: "001", StudentNum: 10, GraduatedTime: &graduatedTime, StudentIDs: studentIDs, } newClass := &Class{ IDField: IDField{ID: classID}, Name: "", StudentNum: 30, GraduatedTime: &graduatedTime, StudentIDs: studentIDs, } err = sql.InsertEntity(sdk.GetInstance(), tableName, class) if err != nil { panic(err) } result, err := sql.QueryOne(sdk.GetInstance(), &sql_tpl.QueryOneExecuteParams{ TableName: tableName, Conditions: sql_tpl.NewConditions().Equal("id", classID), }) if err != nil { panic(err) } classInfoPtr, err := sql.ParseSqlResult[*Class](result) if err != nil { panic(err) } fmt.Println("Class Info:") fmt.Printf("%#+v\n", classInfoPtr) classInfos, err := sql.ParseSqlResult[[]*Class](result) if err != nil { panic(err) } fmt.Println("Class Info:") fmt.Printf("%#+v\n", classInfos[0]) err = sql.UpdateEntity(sdk.GetInstance(), tableName, newClass) if err != nil { panic(err) } result, err = sql.QueryOne(sdk.GetInstance(), &sql_tpl.QueryOneExecuteParams{ TableName: tableName, Conditions: sql_tpl.NewConditions().Equal("id", classID), }) if err != nil { panic(err) } classInfo, err := sql.ParseSqlResult[Class](result) if err != nil { panic(err) } fmt.Println("Class Info:") fmt.Printf("%#+v\n", classInfo) err = sql.DeleteEntity(sdk.GetInstance(), tableName, &Class{IDField: IDField{ID: classID}}) if err != nil { panic(err) } _, err = sql.QueryOne(sdk.GetInstance(), &sql_tpl.QueryOneExecuteParams{ TableName: tableName, Conditions: sql_tpl.NewConditions().Equal("id", classID), }) if err != nil && !sdk.IsErrorDBRecordNotExist(err) { panic(err) } }