2727import com .google .cloud .bigquery .Schema ;
2828import com .google .cloud .bigquery .StandardSQLTypeName ;
2929import java .sql .Array ;
30+ import java .sql .Date ;
31+ import java .sql .ParameterMetaData ;
3032import java .sql .ResultSetMetaData ;
33+ import java .sql .SQLException ;
34+ import java .sql .Time ;
35+ import java .sql .Timestamp ;
3136import java .sql .Types ;
37+ import java .time .Instant ;
38+ import java .time .LocalDate ;
39+ import java .time .LocalDateTime ;
40+ import java .time .LocalTime ;
41+ import java .util .Calendar ;
42+ import java .util .TimeZone ;
3243import org .junit .jupiter .api .BeforeEach ;
3344import org .junit .jupiter .api .Test ;
3445
@@ -148,7 +159,7 @@ public void testGetParameterMetaData() throws Exception {
148159 preparedStatement .setString (1 , "test" );
149160 preparedStatement .setInt (2 , 42 );
150161
151- java . sql . ParameterMetaData metaData = preparedStatement .getParameterMetaData ();
162+ ParameterMetaData metaData = preparedStatement .getParameterMetaData ();
152163 assertEquals (5 , metaData .getParameterCount ());
153164 assertEquals (Types .NVARCHAR , metaData .getParameterType (1 ));
154165 assertEquals ("STRING" , metaData .getParameterTypeName (1 ));
@@ -158,35 +169,35 @@ public void testGetParameterMetaData() throws Exception {
158169 assertEquals ("INT64" , metaData .getParameterTypeName (2 ));
159170 assertEquals (Long .class .getName (), metaData .getParameterClassName (2 ));
160171
161- assertEquals (java . sql . ParameterMetaData .parameterNullable , metaData .isNullable (1 ));
162- assertEquals (java . sql . ParameterMetaData .parameterModeIn , metaData .getParameterMode (1 ));
172+ assertEquals (ParameterMetaData .parameterNullable , metaData .isNullable (1 ));
173+ assertEquals (ParameterMetaData .parameterModeIn , metaData .getParameterMode (1 ));
163174
164- assertThrows (java . sql . SQLException .class , () -> metaData .getParameterType (0 ));
165- assertThrows (java . sql . SQLException .class , () -> metaData .getParameterType (6 ));
175+ assertThrows (SQLException .class , () -> metaData .getParameterType (0 ));
176+ assertThrows (SQLException .class , () -> metaData .getParameterType (6 ));
166177 }
167178
168179 @ Test
169180 public void testSetDateWithCalendar () throws Exception {
170- java . util . Calendar cal = java . util . Calendar .getInstance (java . util . TimeZone .getTimeZone ("UTC" ));
171- java . sql . Date date = new java . sql . Date (1700000000000L ); // 2023-11-14
181+ Calendar cal = Calendar .getInstance (TimeZone .getTimeZone ("UTC" ));
182+ Date date = new Date (1700000000000L ); // 2023-11-14
172183
173184 preparedStatement .setDate (1 , date , cal );
174185 assertEquals (String .class , preparedStatement .parameterHandler .getType (1 ));
175186 }
176187
177188 @ Test
178189 public void testSetTimeWithCalendar () throws Exception {
179- java . util . Calendar cal = java . util . Calendar .getInstance (java . util . TimeZone .getTimeZone ("UTC" ));
180- java . sql . Time time = new java . sql . Time (43200000L ); // 12:00:00
190+ Calendar cal = Calendar .getInstance (TimeZone .getTimeZone ("UTC" ));
191+ Time time = new Time (43200000L ); // 12:00:00
181192
182193 preparedStatement .setTime (1 , time , cal );
183194 assertEquals (String .class , preparedStatement .parameterHandler .getType (1 ));
184195 }
185196
186197 @ Test
187198 public void testSetTimestampWithCalendar () throws Exception {
188- java . util . Calendar cal = java . util . Calendar .getInstance (java . util . TimeZone .getTimeZone ("UTC" ));
189- java . sql . Timestamp ts = new java . sql . Timestamp (1700000000000L );
199+ Calendar cal = Calendar .getInstance (TimeZone .getTimeZone ("UTC" ));
200+ Timestamp ts = new Timestamp (1700000000000L );
190201
191202 preparedStatement .setTimestamp (1 , ts , cal );
192203 assertEquals (String .class , preparedStatement .parameterHandler .getType (1 ));
@@ -211,4 +222,23 @@ public void testGetMetaData() throws Exception {
211222 assertEquals ("col2" , metaData .getColumnName (2 ));
212223 assertEquals (Types .BIGINT , metaData .getColumnType (2 ));
213224 }
225+
226+ @ Test
227+ public void testSetObjectWithJavaTime () throws Exception {
228+ LocalDate localDate = LocalDate .of (2025 , 12 , 3 );
229+ preparedStatement .setObject (1 , localDate );
230+ assertEquals (String .class , preparedStatement .parameterHandler .getType (1 ));
231+
232+ LocalTime localTime = LocalTime .of (12 , 30 , 0 );
233+ preparedStatement .setObject (2 , localTime );
234+ assertEquals (String .class , preparedStatement .parameterHandler .getType (2 ));
235+
236+ LocalDateTime localDateTime = LocalDateTime .of (2025 , 12 , 3 , 12 , 30 , 0 );
237+ preparedStatement .setObject (3 , localDateTime );
238+ assertEquals (String .class , preparedStatement .parameterHandler .getType (3 ));
239+
240+ Instant instant = Instant .now ();
241+ preparedStatement .setObject (4 , instant );
242+ assertEquals (String .class , preparedStatement .parameterHandler .getType (4 ));
243+ }
214244}
0 commit comments