@@ -12,7 +12,6 @@ import (
1212 "time"
1313
1414 "github.com/gogf/gf/v2/database/gdb"
15- "github.com/gogf/gf/v2/frame/g"
1615 "github.com/gogf/gf/v2/test/gtest"
1716 "github.com/gogf/gf/v2/util/gmeta"
1817)
@@ -147,11 +146,15 @@ func Test_WithAll_AdvancedScenarios(t *testing.T) {
147146 defer db .SetDebug (false )
148147 fmt .Println ("\n ========== Scenario 1: 极小数据集(1条)==========" )
149148
150- _ , err := db .Model (tableUser ).Data (g.Map {"id" : 1 , "name" : "user_1" }).Insert ()
149+ user1 := User {Id : 1 , Name : "user_1" }
150+ userDetail1 := UserDetail {Uid : 1 , Address : "address_1" }
151+ userScore1 := UserScores {Id : 1 , Uid : 1 , Score : 100 }
152+
153+ _ , err := db .Model (tableUser ).Data (user1 ).Insert ()
151154 t .AssertNil (err )
152- _ , err = db .Model (tableUserDetail ).Data (g. Map { "uid" : 1 , "address" : "address_1" } ).Insert ()
155+ _ , err = db .Model (tableUserDetail ).Data (userDetail1 ).Insert ()
153156 t .AssertNil (err )
154- _ , err = db .Model (tableUserScores ).Data (g. Map { "id" : 1 , "uid" : 1 , "score" : 100 } ).Insert ()
157+ _ , err = db .Model (tableUserScores ).Data (userScore1 ).Insert ()
155158 t .AssertNil (err )
156159
157160 var users []* User
@@ -177,12 +180,11 @@ func Test_WithAll_AdvancedScenarios(t *testing.T) {
177180 defer db .SetDebug (false )
178181 fmt .Println ("\n ========== Scenario 2: BatchThreshold 精确边界 ==========" )
179182
180- // 准备10条数据
181- usersData := g.List {}
182- detailsData := g.List {}
183- for i := 1 ; i <= 10 ; i ++ {
184- usersData = append (usersData , g.Map {"id" : i , "name" : fmt .Sprintf ("user_%d" , i )})
185- detailsData = append (detailsData , g.Map {"uid" : i , "address" : fmt .Sprintf ("address_%d" , i )})
183+ usersData := make ([]* User , 10 )
184+ detailsData := make ([]* UserDetail , 10 )
185+ for i := 0 ; i < 10 ; i ++ {
186+ usersData [i ] = & User {Id : i + 1 , Name : fmt .Sprintf ("user_%d" , i + 1 )}
187+ detailsData [i ] = & UserDetail {Uid : i + 1 , Address : fmt .Sprintf ("address_%d" , i + 1 )}
186188 }
187189 _ , err := db .Model (tableUser ).Data (usersData ).Insert ()
188190 t .AssertNil (err )
@@ -227,28 +229,30 @@ func Test_WithAll_AdvancedScenarios(t *testing.T) {
227229 db .SetDebug (true )
228230 defer db .SetDebug (false )
229231 // 20用户 * 5scores * 3details = 300 details
230- usersData := g. List {}
231- for i := 1 ; i <= 20 ; i ++ {
232- usersData = append ( usersData , g. Map { "id" : i , "name" : fmt .Sprintf ("user_%d" , i )})
232+ usersData := make ([] * User , 20 )
233+ for i := 0 ; i < 20 ; i ++ {
234+ usersData [ i ] = & User { Id : i + 1 , Name : fmt .Sprintf ("user_%d" , i + 1 )}
233235 }
234236 _ , err := db .Model (tableUser ).Data (usersData ).Insert ()
235237 t .AssertNil (err )
236238
237- scoresData := g. List {}
239+ scoresData := make ([] * UserScores , 100 ) // 20*5=100
238240 scoreId := 1
239- for i := 1 ; i <= 20 ; i ++ {
240- for j := 1 ; j <= 5 ; j ++ {
241- scoresData = append ( scoresData , g. Map { "id" : scoreId , "uid" : i , "score" : j * 10 })
241+ for i := 0 ; i < 20 ; i ++ {
242+ for j := 0 ; j < 5 ; j ++ {
243+ scoresData [ scoreId - 1 ] = & UserScores { Id : scoreId , Uid : i + 1 , Score : ( j + 1 ) * 10 }
242244 scoreId ++
243245 }
244246 }
245247 _ , err = db .Model (tableUserScores ).Data (scoresData ).Insert ()
246248 t .AssertNil (err )
247249
248- detailsData := g.List {}
250+ detailsData := make ([]* UserScoreDetails , 300 ) // 100*3=300
251+ detailIdx := 0
249252 for i := 1 ; i <= 100 ; i ++ {
250- for j := 1 ; j <= 3 ; j ++ {
251- detailsData = append (detailsData , g.Map {"score_id" : i , "detail_info" : fmt .Sprintf ("detail_%d_%d" , i , j )})
253+ for j := 0 ; j < 3 ; j ++ {
254+ detailsData [detailIdx ] = & UserScoreDetails {ScoreId : i , DetailInfo : fmt .Sprintf ("detail_%d_%d" , i , j + 1 )}
255+ detailIdx ++
252256 }
253257 }
254258 _ , err = db .Model (tableUserScoreDetails ).Data (detailsData ).Insert ()
@@ -285,7 +289,9 @@ func Test_WithAll_AdvancedScenarios(t *testing.T) {
285289 fmt .Println ("\n ========== Scenario 4: 空关联数据 ==========" )
286290 db .SetDebug (true )
287291 defer db .SetDebug (false )
288- _ , err := db .Model (tableUser ).Data (g.Map {"id" : 100 , "name" : "user_empty" }).Insert ()
292+
293+ userEmpty := User {Id : 100 , Name : "user_empty" }
294+ _ , err := db .Model (tableUser ).Data (userEmpty ).Insert ()
289295 t .AssertNil (err )
290296
291297 var users []* User
@@ -308,39 +314,41 @@ func Test_WithAll_AdvancedScenarios(t *testing.T) {
308314 db .SetDebug (true )
309315 defer db .SetDebug (false )
310316 // 5用户 * 2scores * 2details * 2comments
311- usersData := g. List {}
312- for i := 1 ; i <= 5 ; i ++ {
313- usersData = append ( usersData , g. Map { "id" : i , "name" : fmt .Sprintf ("user_%d" , i )})
317+ usersData := make ([] * User , 5 )
318+ for i := 0 ; i < 5 ; i ++ {
319+ usersData [ i ] = & User { Id : i + 1 , Name : fmt .Sprintf ("user_%d" , i + 1 )}
314320 }
315321 _ , err := db .Model (tableUser ).Data (usersData ).Insert ()
316322 t .AssertNil (err )
317323
318- scoresData := g. List {}
324+ scoresData := make ([] * UserScores , 10 ) // 5*2=10
319325 scoreId := 1
320- for i := 1 ; i <= 5 ; i ++ {
321- for j := 1 ; j <= 2 ; j ++ {
322- scoresData = append ( scoresData , g. Map { "id" : scoreId , "uid" : i , "score" : j * 10 })
326+ for i := 0 ; i < 5 ; i ++ {
327+ for j := 0 ; j < 2 ; j ++ {
328+ scoresData [ scoreId - 1 ] = & UserScores { Id : scoreId , Uid : i + 1 , Score : ( j + 1 ) * 10 }
323329 scoreId ++
324330 }
325331 }
326332 _ , err = db .Model (tableUserScores ).Data (scoresData ).Insert ()
327333 t .AssertNil (err )
328334
329- detailsData := g. List {}
335+ detailsData := make ([] * UserScoreDetails , 20 ) // 10*2=20
330336 detailId := 1
331- for i := 1 ; i <= 10 ; i ++ {
332- for j := 1 ; j <= 2 ; j ++ {
333- detailsData = append ( detailsData , g. Map { "id" : detailId , "score_id" : i , "detail_info" : fmt .Sprintf ("detail_%d_%d" , i , j )})
337+ for i := 0 ; i < 10 ; i ++ {
338+ for j := 0 ; j < 2 ; j ++ {
339+ detailsData [ detailId - 1 ] = & UserScoreDetails { Id : detailId , ScoreId : i + 1 , DetailInfo : fmt .Sprintf ("detail_%d_%d" , i + 1 , j + 1 )}
334340 detailId ++
335341 }
336342 }
337343 _ , err = db .Model (tableUserScoreDetails ).Data (detailsData ).Insert ()
338344 t .AssertNil (err )
339345
340- commentsData := g.List {}
341- for i := 1 ; i <= 20 ; i ++ {
342- for j := 1 ; j <= 2 ; j ++ {
343- commentsData = append (commentsData , g.Map {"detail_id" : i , "comment" : fmt .Sprintf ("comment_%d_%d" , i , j )})
346+ commentsData := make ([]* ScoreComments , 40 ) // 20*2=40
347+ commentId := 1
348+ for i := 0 ; i < 20 ; i ++ {
349+ for j := 0 ; j < 2 ; j ++ {
350+ commentsData [commentId - 1 ] = & ScoreComments {DetailId : i + 1 , Comment : fmt .Sprintf ("comment_%d_%d" , i + 1 , j + 1 )}
351+ commentId ++
344352 }
345353 }
346354 _ , err = db .Model (tableScoreComments ).Data (commentsData ).Insert ()
@@ -383,30 +391,34 @@ func Test_WithAll_AdvancedScenarios(t *testing.T) {
383391 detailPerScore := 3
384392
385393 fmt .Println (" → 插入1000个用户..." )
386- usersData := g. List {}
387- for i := 1 ; i <= userCount ; i ++ {
388- usersData = append ( usersData , g. Map { "id" : i , "name" : fmt .Sprintf ("user_%d" , i )})
394+ usersData := make ([] * User , userCount )
395+ for i := 0 ; i < userCount ; i ++ {
396+ usersData [ i ] = & User { Id : i + 1 , Name : fmt .Sprintf ("user_%d" , i + 1 )}
389397 }
390398 _ , err := db .Model (tableUser ).Data (usersData ).Insert ()
391399 t .AssertNil (err )
392400
393401 fmt .Println (" → 插入5000个scores..." )
394- scoresData := g.List {}
402+ totalScores := userCount * scorePerUser
403+ scoresData := make ([]* UserScores , totalScores )
395404 scoreId := 1
396- for i := 1 ; i <= userCount ; i ++ {
397- for j := 1 ; j <= scorePerUser ; j ++ {
398- scoresData = append ( scoresData , g. Map { "id" : scoreId , "uid" : i , "score" : j * 10 })
405+ for i := 0 ; i < userCount ; i ++ {
406+ for j := 0 ; j < scorePerUser ; j ++ {
407+ scoresData [ scoreId - 1 ] = & UserScores { Id : scoreId , Uid : i + 1 , Score : ( j + 1 ) * 10 }
399408 scoreId ++
400409 }
401410 }
402411 _ , err = db .Model (tableUserScores ).Data (scoresData ).Batch (1000 ).Insert ()
403412 t .AssertNil (err )
404413
405414 fmt .Println (" → 插入15000个details..." )
406- detailsData := g.List {}
415+ totalDetails := userCount * scorePerUser * detailPerScore
416+ detailsData := make ([]* UserScoreDetails , totalDetails )
417+ detailIdx := 0
407418 for i := 1 ; i <= userCount * scorePerUser ; i ++ {
408- for j := 1 ; j <= detailPerScore ; j ++ {
409- detailsData = append (detailsData , g.Map {"score_id" : i , "detail_info" : fmt .Sprintf ("detail_%d_%d" , i , j )})
419+ for j := 0 ; j < detailPerScore ; j ++ {
420+ detailsData [detailIdx ] = & UserScoreDetails {ScoreId : i , DetailInfo : fmt .Sprintf ("detail_%d_%d" , i , j + 1 )}
421+ detailIdx ++
410422 }
411423 }
412424 _ , err = db .Model (tableUserScoreDetails ).Data (detailsData ).Batch (1000 ).Insert ()
@@ -443,17 +455,19 @@ func Test_WithAll_AdvancedScenarios(t *testing.T) {
443455 fmt .Println ("\n ========== Scenario 7: 全局配置+层级覆盖 ==========" )
444456 db .SetDebug (true )
445457 defer db .SetDebug (false )
446- usersData := g. List {}
447- for i := 1 ; i <= 10 ; i ++ {
448- usersData = append ( usersData , g. Map { "id" : i , "name" : fmt .Sprintf ("user_%d" , i )})
458+ usersData := make ([] * User , 10 )
459+ for i := 0 ; i < 10 ; i ++ {
460+ usersData [ i ] = & User { Id : i + 1 , Name : fmt .Sprintf ("user_%d" , i + 1 )}
449461 }
450462 _ , err := db .Model (tableUser ).Data (usersData ).Insert ()
451463 t .AssertNil (err )
452464
453- scoresData := g.List {}
454- for i := 1 ; i <= 10 ; i ++ {
455- for j := 1 ; j <= 3 ; j ++ {
456- scoresData = append (scoresData , g.Map {"uid" : i , "score" : j * 10 })
465+ scoresData := make ([]* UserScores , 30 ) // 10*3=30
466+ scoreIdx := 0
467+ for i := 0 ; i < 10 ; i ++ {
468+ for j := 0 ; j < 3 ; j ++ {
469+ scoresData [scoreIdx ] = & UserScores {Uid : i + 1 , Score : (j + 1 ) * 10 }
470+ scoreIdx ++
457471 }
458472 }
459473 _ , err = db .Model (tableUserScores ).Data (scoresData ).Insert ()
0 commit comments