@@ -506,50 +506,25 @@ public void testMapTypesSimpleStatement() throws SQLException {
506506 Random rand = new Random (seed );
507507 log .info ("Random seed was: {}" , seed );
508508
509- int mapSize = rand .nextInt (10 );
510- String [] keys = new String [mapSize ];
511- int [] values = new int [mapSize ];
509+ int mapSize = rand .nextInt (100 );
510+ Map <String , Integer > integerMap = new java .util .HashMap <>(mapSize );
512511 for (int i = 0 ; i < mapSize ; i ++) {
513- keys [i ] = "key" + i ;
514- values [i ] = rand .nextInt (256 ) - 128 ;
512+ integerMap .put ("key" + i , rand .nextInt (256 ) - 128 );
515513 }
516514
517- String [] keysstr = new String [mapSize ];
518- String [] valuesstr = new String [mapSize ];
515+ Map <String , String > stringMap = new java .util .HashMap <>(mapSize );
519516 for (int i = 0 ; i < mapSize ; i ++) {
520- keysstr [i ] = "key" + i ;
521- valuesstr [i ] = "string" + rand .nextInt (1000 );
517+ stringMap .put ("key" + i , "string" + rand .nextInt (1000 ));
522518 }
523519
524520 // Insert random (valid) values
525- StringBuilder sb = new StringBuilder ();
526- sb .append ("INSERT INTO test_maps VALUES ( 1, " );
527- sb .append ("{" );
528- for (int i = 0 ; i < mapSize ; i ++) {
529- if (i > 0 ) {
530- sb .append (", " );
531- }
532- sb .append ("'" );
533- sb .append (keys [i ]);
534- sb .append ("': " );
535- sb .append (values [i ]);
536- }
537- sb .append ("}, " );
538- sb .append ("{" );
539- for (int i = 0 ; i < mapSize ; i ++) {
540- if (i > 0 ) {
541- sb .append (", " );
521+ try (Connection conn = getConnection ()) {
522+ try (PreparedStatement stmt = conn .prepareStatement ("INSERT INTO test_maps VALUES ( 1, ?, ? )" )) {
523+ stmt .setObject (1 , integerMap );
524+ stmt .setObject (2 , stringMap );
525+ stmt .executeUpdate ();
542526 }
543- sb .append ("'" );
544- sb .append (keysstr [i ]);
545- sb .append ("': '" );
546- sb .append (valuesstr [i ]);
547- sb .append ("'" );
548527 }
549- sb .append ("}" );
550- sb .append (")" );
551- String sql = sb .toString ();
552- insertData (sql );
553528
554529 // Check the results
555530 try (Connection conn = getConnection ()) {
@@ -558,14 +533,14 @@ public void testMapTypesSimpleStatement() throws SQLException {
558533 assertTrue (rs .next ());
559534 Map <Object , Object > mapResult = (Map <Object , Object >) rs .getObject ("map" );
560535 assertEquals (mapResult .size (), mapSize );
561- for (int i = 0 ; i < mapSize ; i ++ ) {
562- assertEquals (String .valueOf (mapResult .get (keys [ i ] )), String .valueOf (values [ i ] ));
536+ for (String key : integerMap . keySet () ) {
537+ assertEquals (String .valueOf (mapResult .get (key )), String .valueOf (integerMap . get ( key ) ));
563538 }
564539
565540 Map <Object , Object > mapstrResult = (Map <Object , Object >) rs .getObject ("mapstr" );
566541 assertEquals (mapstrResult .size (), mapSize );
567- for (int i = 0 ; i < mapSize ; i ++ ) {
568- assertEquals (mapstrResult .get (keysstr [ i ]), valuesstr [ i ] );
542+ for (String key : stringMap . keySet () ) {
543+ assertEquals (String . valueOf ( mapstrResult .get (key )), String . valueOf ( stringMap . get ( key )) );
569544 }
570545 }
571546 }
0 commit comments