@@ -74,24 +74,8 @@ protected void doBind(
7474 X value ,
7575 int index ,
7676 WrapperOptions options ) throws SQLException {
77- try {
78- final OffsetDateTime dateTime = javaType .unwrap ( value , OffsetDateTime .class , options );
79- // supposed to be supported in JDBC 4.2
80- st .setObject ( index , dateTime , Types .TIMESTAMP_WITH_TIMEZONE );
81- }
82- catch (SQLException |AbstractMethodError e ) {
83- // fall back to treating it as a JDBC Timestamp
84- final Timestamp timestamp = javaType .unwrap ( value , Timestamp .class , options );
85- if ( value instanceof Calendar calendar ) {
86- st .setTimestamp ( index , timestamp , calendar );
87- }
88- else if ( options .getJdbcTimeZone () != null ) {
89- st .setTimestamp ( index , timestamp , Calendar .getInstance ( options .getJdbcTimeZone () ) );
90- }
91- else {
92- st .setTimestamp ( index , timestamp );
93- }
94- }
77+ final OffsetDateTime dateTime = javaType .unwrap ( value , OffsetDateTime .class , options );
78+ st .setObject ( index , dateTime , Types .TIMESTAMP_WITH_TIMEZONE );
9579 }
9680
9781 @ Override
@@ -101,24 +85,8 @@ protected void doBind(
10185 String name ,
10286 WrapperOptions options )
10387 throws SQLException {
104- try {
105- final OffsetDateTime dateTime = javaType .unwrap ( value , OffsetDateTime .class , options );
106- // supposed to be supported in JDBC 4.2
107- st .setObject ( name , dateTime , Types .TIMESTAMP_WITH_TIMEZONE );
108- }
109- catch (SQLException |AbstractMethodError e ) {
110- // fall back to treating it as a JDBC Timestamp
111- final Timestamp timestamp = javaType .unwrap ( value , Timestamp .class , options );
112- if ( value instanceof Calendar calendar ) {
113- st .setTimestamp ( name , timestamp , calendar );
114- }
115- else if ( options .getJdbcTimeZone () != null ) {
116- st .setTimestamp ( name , timestamp , Calendar .getInstance ( options .getJdbcTimeZone () ) );
117- }
118- else {
119- st .setTimestamp ( name , timestamp );
120- }
121- }
88+ final OffsetDateTime dateTime = javaType .unwrap ( value , OffsetDateTime .class , options );
89+ st .setObject ( name , dateTime , Types .TIMESTAMP_WITH_TIMEZONE );
12290 }
12391 };
12492 }
@@ -128,44 +96,17 @@ public <X> ValueExtractor<X> getExtractor(final JavaType<X> javaType) {
12896 return new BasicExtractor <>( javaType , this ) {
12997 @ Override
13098 protected X doExtract (ResultSet rs , int position , WrapperOptions options ) throws SQLException {
131- try {
132- // supposed to be supported in JDBC 4.2
133- return javaType .wrap ( rs .getObject ( position , OffsetDateTime .class ), options );
134- }
135- catch (SQLException |AbstractMethodError e ) {
136- // fall back to treating it as a JDBC Timestamp
137- return options .getJdbcTimeZone () != null ?
138- javaType .wrap ( rs .getTimestamp ( position , Calendar .getInstance ( options .getJdbcTimeZone () ) ), options ) :
139- javaType .wrap ( rs .getTimestamp ( position ), options );
140- }
99+ return javaType .wrap ( rs .getObject ( position , OffsetDateTime .class ), options );
141100 }
142101
143102 @ Override
144103 protected X doExtract (CallableStatement statement , int position , WrapperOptions options ) throws SQLException {
145- try {
146- // supposed to be supported in JDBC 4.2
147- return javaType .wrap ( statement .getObject ( position , OffsetDateTime .class ), options );
148- }
149- catch (SQLException |AbstractMethodError e ) {
150- // fall back to treating it as a JDBC Timestamp
151- return options .getJdbcTimeZone () != null ?
152- javaType .wrap ( statement .getTimestamp ( position , Calendar .getInstance ( options .getJdbcTimeZone () ) ), options ) :
153- javaType .wrap ( statement .getTimestamp ( position ), options );
154- }
104+ return javaType .wrap ( statement .getObject ( position , OffsetDateTime .class ), options );
155105 }
156106
157107 @ Override
158108 protected X doExtract (CallableStatement statement , String name , WrapperOptions options ) throws SQLException {
159- try {
160- // supposed to be supported in JDBC 4.2
161- return javaType .wrap ( statement .getObject ( name , OffsetDateTime .class ), options );
162- }
163- catch (SQLException |AbstractMethodError e ) {
164- // fall back to treating it as a JDBC Timestamp
165- return options .getJdbcTimeZone () != null ?
166- javaType .wrap ( statement .getTimestamp ( name , Calendar .getInstance ( options .getJdbcTimeZone () ) ), options ) :
167- javaType .wrap ( statement .getTimestamp ( name ), options );
168- }
109+ return javaType .wrap ( statement .getObject ( name , OffsetDateTime .class ), options );
169110 }
170111 };
171112 }
0 commit comments