package main import ( "git.sxidc.com/go-tools/utils/strutils" "git.sxidc.com/service-supports/ds-sdk/sdk" "math/rand" ) const ( token = "IpTTwAQweh/BP51fz5CzWKQFaXHvZe6ewvk6yOcAOkU=" baseUrl = "http://localhost:10000" namespace = "ns-sdk-demo" dataSource = "ds-sdk-demo" dataContainer = "dc-sdk-demo" sql = "delete-sdk-demo" ) var ( dataSourceSpec = sdk.DataSourceDatabaseSpec{ Type: sdk.DataSourceDatabaseTypePostgres, UserName: "test", Password: "123456", Address: "localhost", Port: "30432", Database: "test", MaxConnections: 40, MaxIdleConnections: 10, } dataContainerSpec = sdk.DataContainerDatabaseSpec{ TableName: "test.classes", Columns: []sdk.DataContainerDatabaseColumnSpec{ { Name: "id", Type: "varchar(32)", Comment: "id", PrimaryKey: true, }, { Name: "name", Type: "varchar(128)", Comment: "班名", NotNull: true, }, { Name: "student_num", Type: "integer", Comment: "学生数量", Default: 60, }, }, } sqlSpec = sdk.SqlSpec{ Transaction: false, Clauses: "- DELETE FROM test.classes WHERE id = '{{ .id }}'", } ) func main() { classID := strutils.SimpleUUID() className := strutils.SimpleUUID() studentNum := rand.Int31n(100) err := sdk.InitInstance(token, baseUrl, namespace, &sdk.DataSourceOption{ Name: dataSource, Type: sdk.DataSourceTypeDatabase, Spec: dataSourceSpec.ToMap(), }) if err != nil { panic(err) } defer func() { err := sdk.DestroyInstance() if err != nil { panic(err) } }() err = sdk.GetInstance().CreateDataContainer(dataContainer, dataContainerSpec.ToMap()) if err != nil { panic(err) } err = sdk.GetInstance().GetDBOperations().Table("test.classes").Create(map[string]any{ "id": classID, "name": className, "student_num": studentNum, }) if err != nil { panic(err) } tableRow, err := sdk.GetInstance().GetDBOperations(). Table("test.classes"). Where("id = ?", classID). Row() if err != nil { panic(err) } if tableRow["id"] != classID || tableRow["name"] != className || tableRow["student_num"] != studentNum { panic("数据查询错误") } err = sdk.GetInstance().CreateSQL(sql, sqlSpec.ToMap()) if err != nil { panic(err) } _, err = sdk.GetInstance().ExecuteSql(sql, map[string]any{"id": classID}) if err != nil { panic(err) } err = sdk.GetInstance().DeleteSQL(sql) if err != nil { panic(err) } err = sdk.GetInstance().DeleteDataContainer(dataContainer) if err != nil { panic(err) } }