demo.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. package main
  2. import (
  3. "git.sxidc.com/go-tools/utils/strutils"
  4. "git.sxidc.com/service-supports/ds-sdk/sdk"
  5. "math/rand"
  6. )
  7. const (
  8. token = "IpTTwAQweh/BP51fz5CzWKQFaXHvZe6ewvk6yOcAOkU="
  9. address = "localhost"
  10. httpPort = "10000"
  11. grpcPort = "10001"
  12. namespace = "ns-sdk-demo"
  13. dataSource = "ds-sdk-demo"
  14. dataContainer = "dc-sdk-demo"
  15. deleteSql = "delete-sdk-demo"
  16. )
  17. const (
  18. sqlInsertTpl = "INSERT INTO test.classes (id, name, student_num) VALUES ('[[ .id ]]', '[[ .name ]]', [[ .student_num ]])"
  19. )
  20. var (
  21. dataContainerSpec = sdk.DataContainerDatabaseSpec{
  22. TableName: "test.classes",
  23. Columns: []sdk.DataContainerDatabaseColumnSpec{
  24. {
  25. Name: "id",
  26. Type: "varchar(32)",
  27. Comment: "id",
  28. PrimaryKey: true,
  29. },
  30. {
  31. Name: "name",
  32. Type: "varchar(128)",
  33. Comment: "班名",
  34. NotNull: true,
  35. },
  36. {
  37. Name: "student_num",
  38. Type: "integer",
  39. Comment: "学生数量",
  40. Default: 60,
  41. },
  42. },
  43. }
  44. sqlSpec = sdk.SqlSpec{
  45. Transaction: false,
  46. Clauses: "- DELETE FROM test.classes WHERE id = '{{ .id }}'",
  47. }
  48. )
  49. func main() {
  50. classID := strutils.SimpleUUID()
  51. className := strutils.SimpleUUID()
  52. studentNum := rand.Int31n(100)
  53. insertExecuteParams := map[string]any{
  54. "id": classID,
  55. "name": className,
  56. "student_num": studentNum,
  57. }
  58. deleteExecuteParams := map[string]any{
  59. "id": classID,
  60. }
  61. err := sdk.InitInstance(token, address, httpPort, grpcPort, namespace, dataSource)
  62. if err != nil {
  63. panic(err)
  64. }
  65. defer func() {
  66. err := sdk.DestroyInstance()
  67. if err != nil {
  68. panic(err)
  69. }
  70. }()
  71. err = sdk.GetInstance().CreateDataContainer(dataContainer, dataContainerSpec.ToMap())
  72. if err != nil {
  73. panic(err)
  74. }
  75. err = sdk.GetInstance().CreateSQL(deleteSql, sqlSpec.ToMap())
  76. if err != nil {
  77. panic(err)
  78. }
  79. _, err = sdk.GetInstance().ExecuteRawSql(sqlInsertTpl, insertExecuteParams)
  80. if err != nil {
  81. panic(err)
  82. }
  83. _, err = sdk.GetInstance().ExecuteSql(deleteSql, deleteExecuteParams)
  84. if err != nil {
  85. panic(err)
  86. }
  87. err = sdk.GetInstance().Transaction(func(tx *sdk.Transaction) error {
  88. err := tx.ExecuteRawSql(sqlInsertTpl, insertExecuteParams)
  89. if err != nil {
  90. return err
  91. }
  92. err = tx.ExecuteSql(deleteSql, deleteExecuteParams)
  93. if err != nil {
  94. return err
  95. }
  96. return nil
  97. })
  98. if err != nil {
  99. panic(err)
  100. }
  101. err = sdk.GetInstance().DeleteDataContainer(dataContainer)
  102. if err != nil {
  103. panic(err)
  104. }
  105. }