yjp пре 1 година
родитељ
комит
f6f39a02c1
2 измењених фајлова са 51 додато и 16 уклоњено
  1. 1 0
      db_operations/db_operations.go
  2. 50 16
      demo/demo.go

+ 1 - 0
db_operations/db_operations.go

@@ -19,6 +19,7 @@ type BaseDBOperations interface {
 	// 执行SQL语句,使用Raw之后,为了触发SQL执行,需要调用Row或者Rows
 	// 如果是查询语句,使用Rows或Row均可,主要看自己需要查询的是单行还是多行
 	// 如果是写语句,必须使用Rows,否则由于没有返回结果,Rows会报错
+	// 使用Raw以后,所有分页相关的参数都无效,需要使用SQL语句进行分页
 	Raw(sql string, values ...any) DBOperations
 
 	// 组织SQL语句相关的方法

+ 50 - 16
demo/demo.go

@@ -58,12 +58,16 @@ var (
 )
 
 func main() {
-	classID := strutils.SimpleUUID()
-	className := strutils.SimpleUUID()
-	studentNum := rand.Int31n(100)
+	classID1 := strutils.SimpleUUID()
+	className1 := strutils.SimpleUUID()
+	studentNum1 := rand.Int31n(100)
 
-	newClassName := strutils.SimpleUUID()
-	newStudentNum := rand.Int31n(100)
+	newClassName1 := strutils.SimpleUUID()
+	newStudentNum1 := rand.Int31n(100)
+
+	classID2 := strutils.SimpleUUID()
+	className2 := strutils.SimpleUUID()
+	studentNum2 := rand.Int31n(100)
 
 	err := sdk.InitInstance(token, baseUrl, namespace, &sdk.DataSourceOption{
 		Name: dataSource,
@@ -89,9 +93,9 @@ func main() {
 	err = sdk.GetInstance().GetDBOperations().NewSession().
 		Table("test.classes").
 		Create(map[string]any{
-			"id":          classID,
-			"name":        className,
-			"student_num": studentNum,
+			"id":          classID1,
+			"name":        className1,
+			"student_num": studentNum1,
 		})
 	if err != nil {
 		panic(err)
@@ -99,7 +103,7 @@ func main() {
 
 	err = sdk.GetInstance().GetDBOperations().NewSession().
 		Table("test.classes").
-		Where("id = ?", classID).
+		Where("id = ?", classID1).
 		Delete()
 	if err != nil {
 		panic(err)
@@ -108,9 +112,20 @@ func main() {
 	err = sdk.GetInstance().GetDBOperations().NewSession().
 		Table("test.classes").
 		Create(map[string]any{
-			"id":          classID,
-			"name":        className,
-			"student_num": studentNum,
+			"id":          classID1,
+			"name":        className1,
+			"student_num": studentNum1,
+		})
+	if err != nil {
+		panic(err)
+	}
+
+	err = sdk.GetInstance().GetDBOperations().NewSession().
+		Table("test.classes").
+		Create(map[string]any{
+			"id":          classID2,
+			"name":        className2,
+			"student_num": studentNum2,
 		})
 	if err != nil {
 		panic(err)
@@ -119,7 +134,7 @@ func main() {
 	tx := sdk.GetInstance().GetDBOperations().BeginTransaction()
 
 	_, err = tx.
-		Raw("UPDATE test.classes SET name = ?, student_num = ? WHERE id = ?", newClassName, newStudentNum, classID).
+		Raw("UPDATE test.classes SET name = ?, student_num = ? WHERE id = ?", newClassName1, newStudentNum1, classID1).
 		Rows(0, 0)
 	if err != nil {
 		tx.RollbackTransaction()
@@ -130,22 +145,41 @@ func main() {
 
 	tableRow, err := sdk.GetInstance().GetDBOperations().NewSession().
 		Table("test.classes").
-		Where("id = ?", classID).
+		Where("id = ?", classID1).
 		Row()
 	if err != nil {
 		panic(err)
 	}
 
-	if tableRow["id"] != classID || tableRow["name"] != newClassName || tableRow["student_num"] != newStudentNum {
+	if tableRow["id"] != classID1 || tableRow["name"] != newClassName1 || tableRow["student_num"] != newStudentNum1 {
 		panic("数据查询错误")
 	}
 
+	tableRows, err := sdk.GetInstance().GetDBOperations().NewSession().
+		Raw("SELECT * FROM test.classes LIMIT 1 OFFSET 1").
+		Rows(0, 0)
+	if err != nil {
+		panic(err)
+	}
+
+	for _, tableRow := range tableRows {
+		if tableRow["id"] == classID1 {
+			if tableRow["name"] != newClassName1 || tableRow["student_num"] != newStudentNum1 {
+				panic("数据查询错误")
+			}
+		} else {
+			if tableRow["name"] != className2 || tableRow["student_num"] != studentNum2 {
+				panic("数据查询错误")
+			}
+		}
+	}
+
 	err = sdk.GetInstance().CreateSQL(sql, sqlSpec.ToMap())
 	if err != nil {
 		panic(err)
 	}
 
-	_, err = sdk.GetInstance().ExecuteSql(sql, map[string]any{"id": classID})
+	_, err = sdk.GetInstance().ExecuteSql(sql, map[string]any{"id": classID1})
 	if err != nil {
 		panic(err)
 	}