yjp 11 miesięcy temu
rodzic
commit
9bf8fa9608
3 zmienionych plików z 179 dodań i 1 usunięć
  1. 12 1
      demo/common.go
  2. 102 0
      demo/sql_entity.go
  3. 65 0
      demo/sql_entity_tx.go

+ 12 - 1
demo/entity.go → demo/common.go

@@ -2,6 +2,17 @@ package main
 
 import "time"
 
+const (
+	token      = "IpTTwAQweh/BP51fz5CzWKQFaXHvZe6ewvk6yOcAOkU="
+	address    = "localhost"
+	httpPort   = "10000"
+	grpcPort   = "10001"
+	namespace  = "ns-sdk-demo"
+	dataSource = "ds-sdk-demo"
+	deleteSql  = "delete-sdk-demo"
+	tableName  = "test.classes"
+)
+
 type IDField struct {
 	ID string
 }
@@ -33,7 +44,7 @@ type GraduatedTimeInfoStruct struct {
 type ClassInfo struct {
 	IDField
 	Name          string `sqlresult:"aes:@MKU^AHYCN$:j76J<TAHCVD#$XZSWQ@L;"`
-	StudentNum    int    `sqlresult:"column:student_num_alias"`
+	StudentNum    int
 	GraduatedTime *time.Time
 	StudentIDs    []string `sqlresult:"column:student_ids;splitWith:'\n'"`
 	TimeFields

+ 102 - 0
demo/sql_entity.go

@@ -0,0 +1,102 @@
+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,
+	}
+
+	classInfo := new(ClassInfo)
+
+	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)
+	}
+
+	err = sql.ParseSqlResult(result, classInfo)
+	if err != nil {
+		panic(err)
+	}
+
+	fmt.Println("Class Info:")
+	fmt.Printf("%#+v", classInfo)
+
+	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)
+	}
+
+	err = sql.ParseSqlResult(result, classInfo)
+	if err != nil {
+		panic(err)
+	}
+
+	fmt.Println("Class Info:")
+	fmt.Printf("%#+v", 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)
+	}
+}

+ 65 - 0
demo/sql_entity_tx.go

@@ -0,0 +1,65 @@
+package main
+
+import (
+	"git.sxidc.com/go-tools/utils/strutils"
+	"git.sxidc.com/service-supports/ds-sdk/sdk"
+	"git.sxidc.com/service-supports/ds-sdk/sql"
+	"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 = sdk.GetInstance().Transaction(func(tx *sdk.Transaction) error {
+		err = sql.InsertEntity(tx, tableName, class)
+		if err != nil {
+			panic(err)
+		}
+
+		err = sql.UpdateEntity(tx, tableName, newClass)
+		if err != nil {
+			panic(err)
+		}
+
+		err = sql.DeleteEntity(tx, tableName, &Class{IDField: IDField{ID: classID}})
+		if err != nil {
+			panic(err)
+		}
+
+		return nil
+	})
+	if err != nil {
+		panic(err)
+	}
+}