|
@@ -81,7 +81,7 @@ func TestBasic(t *testing.T) {
|
|
|
|
|
|
insertExecuteParams, err := sql_tpl.InsertExecuteParams{
|
|
|
TableName: tableName,
|
|
|
- TableRows: sql_tpl.NewTableRows().Add("id", classID).
|
|
|
+ TableRow: sql_tpl.NewTableRow().Add("id", classID).
|
|
|
Add("name", className, sql_tpl.WithAESKey("@MKU^AHYCN$:j76J<TAHCVD#$XZSWQ@L")).
|
|
|
Add("student_num", studentNum).
|
|
|
Add("student_ids", strings.Join(studentIDs, "\n")).
|
|
@@ -180,7 +180,7 @@ func TestRawSqlTemplate(t *testing.T) {
|
|
|
|
|
|
insertExecuteParams, err := sql_tpl.InsertExecuteParams{
|
|
|
TableName: tableName,
|
|
|
- TableRows: sql_tpl.NewTableRows().Add("id", classID).
|
|
|
+ TableRow: sql_tpl.NewTableRow().Add("id", classID).
|
|
|
Add("name", className, sql_tpl.WithAESKey("@MKU^AHYCN$:j76J<TAHCVD#$XZSWQ@L")).
|
|
|
Add("student_num", studentNum).
|
|
|
Add("student_ids", strings.Join(studentIDs, "\n")).
|
|
@@ -202,7 +202,7 @@ func TestRawSqlTemplate(t *testing.T) {
|
|
|
|
|
|
updateExecuteParams, err := sql_tpl.UpdateExecuteParams{
|
|
|
TableName: tableName,
|
|
|
- TableRows: sql_tpl.NewTableRows().
|
|
|
+ TableRow: sql_tpl.NewTableRow().
|
|
|
Add("name", newClassName, sql_tpl.WithAESKey("@MKU^AHYCN$:j76J<TAHCVD#$XZSWQ@L")).
|
|
|
Add("student_num", newStudentNum).
|
|
|
Add("student_ids", strings.Join(newStudentIDs, "\n")),
|
|
@@ -508,7 +508,7 @@ func TestSql(t *testing.T) {
|
|
|
|
|
|
insertExecuteParams, err := sql_tpl.InsertExecuteParams{
|
|
|
TableName: tableName,
|
|
|
- TableRows: sql_tpl.NewTableRows().Add("id", classID).
|
|
|
+ TableRow: sql_tpl.NewTableRow().Add("id", classID).
|
|
|
Add("name", className, sql_tpl.WithAESKey("@MKU^AHYCN$:j76J<TAHCVD#$XZSWQ@L")).
|
|
|
Add("student_num", studentNum).
|
|
|
Add("student_ids", strings.Join(studentIDs, "\n")).
|
|
@@ -530,7 +530,7 @@ func TestSql(t *testing.T) {
|
|
|
Name: className,
|
|
|
StudentNum: int(studentNum),
|
|
|
StudentIDs: studentIDs,
|
|
|
- GraduatedTime: &newNow,
|
|
|
+ GraduatedTime: &now,
|
|
|
Ignored: "",
|
|
|
}
|
|
|
|
|
@@ -584,7 +584,7 @@ func TestSql(t *testing.T) {
|
|
|
|
|
|
err = sql.Insert(sdk.GetInstance(), &sql_tpl.InsertExecuteParams{
|
|
|
TableName: tableName,
|
|
|
- TableRows: sql_tpl.NewTableRows().Add("id", classID).
|
|
|
+ TableRow: sql_tpl.NewTableRow().Add("id", classID).
|
|
|
Add("name", className, sql_tpl.WithAESKey("@MKU^AHYCN$:j76J<TAHCVD#$XZSWQ@L")).
|
|
|
Add("student_num", studentNum).
|
|
|
Add("student_ids", strings.Join(studentIDs, "\n")).
|
|
@@ -598,7 +598,7 @@ func TestSql(t *testing.T) {
|
|
|
|
|
|
err = sql.Update(sdk.GetInstance(), &sql_tpl.UpdateExecuteParams{
|
|
|
TableName: tableName,
|
|
|
- TableRows: sql_tpl.NewTableRows().Add("id", classID).
|
|
|
+ TableRow: sql_tpl.NewTableRow().Add("id", classID).
|
|
|
Add("name", newClassName, sql_tpl.WithAESKey("@MKU^AHYCN$:j76J<TAHCVD#$XZSWQ@L")).
|
|
|
Add("student_ids", strings.Join(newStudentIDs, "\n")).
|
|
|
Add("student_num", newStudentNum),
|
|
@@ -646,7 +646,7 @@ func TestSql(t *testing.T) {
|
|
|
|
|
|
err = sql.Insert(tx, &sql_tpl.InsertExecuteParams{
|
|
|
TableName: tableName,
|
|
|
- TableRows: sql_tpl.NewTableRows().Add("id", classID).
|
|
|
+ TableRow: sql_tpl.NewTableRow().Add("id", classID).
|
|
|
Add("name", className, sql_tpl.WithAESKey("@MKU^AHYCN$:j76J<TAHCVD#$XZSWQ@L")).
|
|
|
Add("student_num", studentNum).
|
|
|
Add("student_ids", strings.Join(studentIDs, "\n")).
|
|
@@ -660,7 +660,7 @@ func TestSql(t *testing.T) {
|
|
|
|
|
|
err = sql.Update(tx, &sql_tpl.UpdateExecuteParams{
|
|
|
TableName: tableName,
|
|
|
- TableRows: sql_tpl.NewTableRows().Add("id", classID).
|
|
|
+ TableRow: sql_tpl.NewTableRow().Add("id", classID).
|
|
|
Add("name", newClassName, sql_tpl.WithAESKey("@MKU^AHYCN$:j76J<TAHCVD#$XZSWQ@L")).
|
|
|
Add("student_num", newStudentNum).
|
|
|
Add("student_ids", strings.Join(newStudentIDs, "\n")),
|
|
@@ -811,3 +811,147 @@ func TestSql(t *testing.T) {
|
|
|
t.Fatal(err)
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+func TestInsertBatch(t *testing.T) {
|
|
|
+ classID1 := strutils.SimpleUUID()
|
|
|
+ className1 := strutils.SimpleUUID()
|
|
|
+ studentNum1 := rand.Int31n(100)
|
|
|
+ classID2 := strutils.SimpleUUID()
|
|
|
+ className2 := strutils.SimpleUUID()
|
|
|
+ studentNum2 := rand.Int31n(100)
|
|
|
+ now := time.Now()
|
|
|
+
|
|
|
+ insertBatchExecuteParams := &sql_tpl.InsertBatchExecuteParams{
|
|
|
+ TableName: tableName,
|
|
|
+ TableRowsBatch: []sql_tpl.TableRow{
|
|
|
+ *(sql_tpl.NewTableRow().Add("id", classID1).
|
|
|
+ Add("name", className1, sql_tpl.WithAESKey("@MKU^AHYCN$:j76J<TAHCVD#$XZSWQ@L")).
|
|
|
+ Add("student_num", studentNum1).
|
|
|
+ Add("student_ids", "").
|
|
|
+ Add("created_time", now).
|
|
|
+ Add("last_updated_time", now)),
|
|
|
+ *(sql_tpl.NewTableRow().Add("id", classID2).
|
|
|
+ Add("name", className2, sql_tpl.WithAESKey("@MKU^AHYCN$:j76J<TAHCVD#$XZSWQ@L")).
|
|
|
+ Add("student_num", studentNum2).
|
|
|
+ Add("student_ids", "").
|
|
|
+ Add("created_time", now).
|
|
|
+ Add("last_updated_time", now)),
|
|
|
+ },
|
|
|
+ }
|
|
|
+
|
|
|
+ class1 := &Class{
|
|
|
+ IDField: IDField{ID: classID1},
|
|
|
+ Name: className1,
|
|
|
+ StudentNum: int(studentNum1),
|
|
|
+ StudentIDs: make([]string, 0),
|
|
|
+ }
|
|
|
+
|
|
|
+ class2 := &Class{
|
|
|
+ IDField: IDField{ID: classID2},
|
|
|
+ Name: className2,
|
|
|
+ StudentNum: int(studentNum2),
|
|
|
+ StudentIDs: make([]string, 0),
|
|
|
+ }
|
|
|
+
|
|
|
+ err := sdk.InitInstance(token, address, httpPort, grpcPort, namespace, dataSource)
|
|
|
+ if err != nil {
|
|
|
+ t.Fatal(err)
|
|
|
+ }
|
|
|
+
|
|
|
+ defer func() {
|
|
|
+ err := sdk.DestroyInstance()
|
|
|
+ if err != nil {
|
|
|
+ t.Fatal(err)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+
|
|
|
+ err = sql.InsertBatch(sdk.GetInstance(), insertBatchExecuteParams)
|
|
|
+ if err != nil {
|
|
|
+ t.Fatal(err)
|
|
|
+ }
|
|
|
+
|
|
|
+ results, _, err := sql.Query(sdk.GetInstance(), &sql_tpl.QueryExecuteParams{
|
|
|
+ TableName: tableName,
|
|
|
+ SelectColumns: []string{"id", "name", "student_num as student_num_alias"},
|
|
|
+ Conditions: sql_tpl.NewConditions().In("id", []string{classID1, classID2}),
|
|
|
+ PageNo: 0,
|
|
|
+ PageSize: 0,
|
|
|
+ })
|
|
|
+ if err != nil {
|
|
|
+ t.Fatal(err)
|
|
|
+ }
|
|
|
+
|
|
|
+ classInfos, err := sql.ParseSqlResult[[]Class](results)
|
|
|
+ if err != nil {
|
|
|
+ t.Fatal(err)
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, classInfo := range classInfos {
|
|
|
+ if classInfo.ID != classID1 && classInfo.ID != classID2 {
|
|
|
+ t.Fatal("id不正确")
|
|
|
+ }
|
|
|
+
|
|
|
+ if classInfo.ID == classID1 &&
|
|
|
+ (classInfo.Name != className1 || classInfo.StudentNum != int(studentNum1)) {
|
|
|
+ t.Fatal("数据不正确")
|
|
|
+ }
|
|
|
+
|
|
|
+ if classInfo.ID == classID2 &&
|
|
|
+ (classInfo.Name != className2 || classInfo.StudentNum != int(studentNum2)) {
|
|
|
+ t.Fatal("数据不正确")
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ err = sql.Delete(sdk.GetInstance(), &sql_tpl.DeleteExecuteParams{
|
|
|
+ TableName: tableName,
|
|
|
+ Conditions: sql_tpl.NewConditions().In("id", []string{classID1, classID2}),
|
|
|
+ })
|
|
|
+ if err != nil {
|
|
|
+ t.Fatal(err)
|
|
|
+ }
|
|
|
+
|
|
|
+ err = sql.InsertEntity(sdk.GetInstance(), tableName, []*Class{class1, class2})
|
|
|
+ if err != nil {
|
|
|
+ t.Fatal(err)
|
|
|
+ }
|
|
|
+
|
|
|
+ results, _, err = sql.Query(sdk.GetInstance(), &sql_tpl.QueryExecuteParams{
|
|
|
+ TableName: tableName,
|
|
|
+ SelectColumns: []string{"id", "name", "student_num as student_num_alias"},
|
|
|
+ Conditions: sql_tpl.NewConditions().In("id", []string{classID1, classID2}),
|
|
|
+ PageNo: 0,
|
|
|
+ PageSize: 0,
|
|
|
+ })
|
|
|
+ if err != nil {
|
|
|
+ t.Fatal(err)
|
|
|
+ }
|
|
|
+
|
|
|
+ classInfos, err = sql.ParseSqlResult[[]Class](results)
|
|
|
+ if err != nil {
|
|
|
+ t.Fatal(err)
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, classInfo := range classInfos {
|
|
|
+ if classInfo.ID != classID1 && classInfo.ID != classID2 {
|
|
|
+ t.Fatal("id不正确")
|
|
|
+ }
|
|
|
+
|
|
|
+ if classInfo.ID == classID1 &&
|
|
|
+ (classInfo.Name != className1 || classInfo.StudentNum != int(studentNum1)) {
|
|
|
+ t.Fatal("数据不正确")
|
|
|
+ }
|
|
|
+
|
|
|
+ if classInfo.ID == classID2 &&
|
|
|
+ (classInfo.Name != className2 || classInfo.StudentNum != int(studentNum2)) {
|
|
|
+ t.Fatal("数据不正确")
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ err = sql.Delete(sdk.GetInstance(), &sql_tpl.DeleteExecuteParams{
|
|
|
+ TableName: tableName,
|
|
|
+ Conditions: sql_tpl.NewConditions().In("id", []string{classID1, classID2}),
|
|
|
+ })
|
|
|
+ if err != nil {
|
|
|
+ t.Fatal(err)
|
|
|
+ }
|
|
|
+}
|