|
@@ -0,0 +1,126 @@
|
|
|
+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 (
|
|
|
+ dataSourceMap = map[string]any{
|
|
|
+ "type": "postgres",
|
|
|
+ "user_name": "test",
|
|
|
+ "password": "123456",
|
|
|
+ "address": "localhost",
|
|
|
+ "port": "30432",
|
|
|
+ "database": "test",
|
|
|
+ "max_connections": 40,
|
|
|
+ "max_idle_connections": 10,
|
|
|
+ }
|
|
|
+
|
|
|
+ dataContainerMap = map[string]any{
|
|
|
+ "table_name": "test.classes",
|
|
|
+ "columns": []map[string]any{
|
|
|
+ {
|
|
|
+ "name": "id",
|
|
|
+ "type": "varchar(32)",
|
|
|
+ "comment": "id",
|
|
|
+ "primary_key": true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "name",
|
|
|
+ "type": "varchar(128)",
|
|
|
+ "comment": "班名",
|
|
|
+ "not_null": true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "student_num",
|
|
|
+ "type": "integer",
|
|
|
+ "comment": "学生数量",
|
|
|
+ "default": 60,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ }
|
|
|
+
|
|
|
+ sqlSpecMap = map[string]any{
|
|
|
+ "transaction": true,
|
|
|
+ "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: dataSourceMap,
|
|
|
+ })
|
|
|
+ if err != nil {
|
|
|
+ panic(err)
|
|
|
+ }
|
|
|
+
|
|
|
+ defer func() {
|
|
|
+ err := sdk.DestroyInstance()
|
|
|
+ if err != nil {
|
|
|
+ panic(err)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+
|
|
|
+ err = sdk.GetInstance().CreateDataContainer(dataContainer, dataContainerMap)
|
|
|
+ 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"] != int32(studentNum) {
|
|
|
+ panic("数据查询错误")
|
|
|
+ }
|
|
|
+
|
|
|
+ err = sdk.GetInstance().CreateSQL(sql, sqlSpecMap)
|
|
|
+ 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)
|
|
|
+ }
|
|
|
+}
|