16
16
import java .sql .PreparedStatement ;
17
17
import java .sql .ResultSet ;
18
18
import java .sql .SQLException ;
19
- import java .sql .Timestamp ;
20
19
import java .sql .Types ;
21
20
import java .time .OffsetDateTime ;
22
- import java .util .Calendar ;
23
21
24
22
/**
25
23
* Descriptor for {@link Types#TIMESTAMP_WITH_TIMEZONE TIMESTAMP_WITH_TIMEZONE} handling.
@@ -74,24 +72,8 @@ protected void doBind(
74
72
X value ,
75
73
int index ,
76
74
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
- }
75
+ final OffsetDateTime dateTime = javaType .unwrap ( value , OffsetDateTime .class , options );
76
+ st .setObject ( index , dateTime , Types .TIMESTAMP_WITH_TIMEZONE );
95
77
}
96
78
97
79
@ Override
@@ -101,24 +83,8 @@ protected void doBind(
101
83
String name ,
102
84
WrapperOptions options )
103
85
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
- }
86
+ final OffsetDateTime dateTime = javaType .unwrap ( value , OffsetDateTime .class , options );
87
+ st .setObject ( name , dateTime , Types .TIMESTAMP_WITH_TIMEZONE );
122
88
}
123
89
};
124
90
}
@@ -128,44 +94,17 @@ public <X> ValueExtractor<X> getExtractor(final JavaType<X> javaType) {
128
94
return new BasicExtractor <>( javaType , this ) {
129
95
@ Override
130
96
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
- }
97
+ return javaType .wrap ( rs .getObject ( position , OffsetDateTime .class ), options );
141
98
}
142
99
143
100
@ Override
144
101
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
- }
102
+ return javaType .wrap ( statement .getObject ( position , OffsetDateTime .class ), options );
155
103
}
156
104
157
105
@ Override
158
106
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
- }
107
+ return javaType .wrap ( statement .getObject ( name , OffsetDateTime .class ), options );
169
108
}
170
109
};
171
110
}
0 commit comments