66import java .sql .PreparedStatement ;
77import java .sql .ResultSet ;
88import java .sql .SQLException ;
9+ import java .util .ArrayList ;
10+ import java .util .List ;
911
1012import javax .json .bind .JsonbBuilder ;
1113import javax .json .stream .JsonGenerator ;
1214import javax .json .stream .JsonParser ;
1315
1416import org .eclipse .yasson .YassonJsonb ;
1517
18+ import emp .model .Emp ;
19+ import emp .model .Phone ;
1620import oracle .jdbc .OracleTypes ;
1721import oracle .sql .json .OracleJsonFactory ;
1822import oracle .ucp .jdbc .PoolDataSource ;
@@ -30,7 +34,7 @@ public static void main(String[] args) throws SQLException {
3034 YassonJsonb jsonb = (YassonJsonb ) JsonbBuilder .create ();
3135
3236 PoolDataSource pool = PoolDataSourceFactory .getPoolDataSource ();
33- pool .setURL (args [ 0 ] );
37+ pool .setURL (String . join ( "" , args ) );
3438 pool .setConnectionFactoryClassName ("oracle.jdbc.pool.OracleDataSource" );
3539
3640 try (Connection con = pool .getConnection ()) {
@@ -41,6 +45,11 @@ public static void main(String[] args) throws SQLException {
4145 emp .setSalary (BigDecimal .valueOf (200000 ));
4246 emp .setJob ("President" );
4347
48+ List <Phone > phones = new ArrayList <Phone >();
49+ phones .add (new Phone (Phone .Type .MOBILE , "555-333-2222" ));
50+ phones .add (new Phone (Phone .Type .WORK , "555-333-1111" ));
51+ emp .setPhoneNumbers (phones );
52+
4453 // convert Emp class to binary JSON
4554 ByteArrayOutputStream out = new ByteArrayOutputStream ();
4655 JsonGenerator gen = factory .createJsonBinaryGenerator (out )
@@ -65,6 +74,9 @@ public static void main(String[] args) throws SQLException {
6574 Emp e = jsonb .fromJson (parser , Emp .class );
6675 System .out .println ("Emp object retrieved from database. " );
6776 System .out .println (e .getName () + ", " + e .getEmail ());
77+ for (Phone p : e .getPhoneNumbers ()) {
78+ System .out .println (" " + p .getType () + " " + p .getNumber ());
79+ }
6880 }
6981
7082 }
0 commit comments