1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.ibatis.type;
17
18 import java.sql.CallableStatement;
19 import java.sql.PreparedStatement;
20 import java.sql.ResultSet;
21 import java.sql.SQLException;
22 import java.sql.Timestamp;
23 import java.time.Instant;
24
25
26
27
28
29
30 public class InstantTypeHandler extends BaseTypeHandler<Instant> {
31
32 @Override
33 public void setNonNullParameter(PreparedStatement ps, int i, Instant parameter, JdbcType jdbcType)
34 throws SQLException {
35 ps.setTimestamp(i, Timestamp.from(parameter));
36 }
37
38 @Override
39 public Instant getNullableResult(ResultSet rs, String columnName) throws SQLException {
40 Timestamp timestamp = rs.getTimestamp(columnName);
41 return getInstant(timestamp);
42 }
43
44 @Override
45 public Instant getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
46 Timestamp timestamp = rs.getTimestamp(columnIndex);
47 return getInstant(timestamp);
48 }
49
50 @Override
51 public Instant getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
52 Timestamp timestamp = cs.getTimestamp(columnIndex);
53 return getInstant(timestamp);
54 }
55
56 private static Instant getInstant(Timestamp timestamp) {
57 if (timestamp != null) {
58 return timestamp.toInstant();
59 }
60 return null;
61 }
62 }