|
1 | 1 | package ai.chat2db.spi.util; |
2 | 2 |
|
| 3 | +import java.sql.Blob; |
| 4 | +import java.sql.Clob; |
| 5 | +import java.sql.Connection; |
| 6 | +import java.sql.Date; |
| 7 | +import java.sql.ResultSet; |
| 8 | +import java.sql.SQLException; |
| 9 | +import java.sql.Timestamp; |
| 10 | +import java.sql.Types; |
| 11 | +import java.time.LocalDate; |
| 12 | +import java.time.LocalDateTime; |
| 13 | +import java.util.Map; |
| 14 | +import java.util.Objects; |
| 15 | + |
| 16 | +import com.alibaba.druid.DbType; |
| 17 | + |
3 | 18 | import ai.chat2db.spi.config.DriverConfig; |
4 | | -import cn.hutool.core.date.DateUtil; |
5 | 19 | import ai.chat2db.spi.enums.DataTypeEnum; |
6 | 20 | import ai.chat2db.spi.model.DataSourceConnect; |
7 | 21 | import ai.chat2db.spi.model.SSHInfo; |
8 | 22 | import ai.chat2db.spi.sql.IDriverManager; |
9 | 23 | import ai.chat2db.spi.sql.SSHManager; |
10 | | -import com.alibaba.druid.DbType; |
11 | 24 | import com.jcraft.jsch.JSchException; |
12 | 25 | import com.jcraft.jsch.Session; |
13 | 26 | import lombok.extern.slf4j.Slf4j; |
14 | 27 |
|
15 | | -import java.sql.*; |
16 | | -import java.time.LocalDate; |
17 | | -import java.time.LocalDateTime; |
18 | | -import java.time.ZoneId; |
19 | | -import java.time.format.DateTimeFormatter; |
20 | | -import java.util.Locale; |
21 | | -import java.util.Map; |
22 | | - |
23 | 28 | /** |
24 | 29 | * jdbc工具类 |
25 | 30 | * |
|
28 | 33 | @Slf4j |
29 | 34 | public class JdbcUtils { |
30 | 35 |
|
31 | | - private static final String DEFAULT_DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss.SSS"; |
32 | | - private static final DateTimeFormatter DEFAULT_DATETIME_FORMAT = DateTimeFormatter |
33 | | - .ofPattern(DEFAULT_DATETIME_PATTERN, Locale.getDefault()) |
34 | | - .withZone(ZoneId.systemDefault()); |
35 | | - |
36 | | - private static final DateTimeFormatter DEFAULT_DATE_FORMAT = DateTimeFormatter |
37 | | - .ofPattern("yyyy-MM-dd", Locale.getDefault()) |
38 | | - .withZone(ZoneId.systemDefault()); |
39 | | - private static final DateTimeFormatter DEFAULT_DATETIME_TZ_FORMAT = DateTimeFormatter |
40 | | - .ofPattern("yyyy-MM-dd HH:mm:ss.SSS Z", Locale.getDefault()) |
41 | | - .withZone(ZoneId.systemDefault()); |
42 | | - |
43 | 36 | /** |
44 | 37 | * 获取德鲁伊的的数据库类型 |
45 | 38 | * |
@@ -160,37 +153,37 @@ public static String getResultSetValue(ResultSet rs, int index) throws SQLExcept |
160 | 153 | return "(CLOB " + clob.length() + ")"; |
161 | 154 | } |
162 | 155 | if (obj instanceof Timestamp timestamp) { |
163 | | - return DateUtil.format(timestamp, DEFAULT_DATETIME_FORMAT); |
| 156 | + return Objects.toString(timestamp); |
164 | 157 | } |
165 | 158 |
|
166 | 159 | String className = obj.getClass().getName(); |
167 | 160 | if ("oracle.sql.TIMESTAMP".equals(className) || "oracle.sql.TIMESTAMPTZ".equals(className)) { |
168 | | - return DateUtil.format(rs.getTimestamp(index), DEFAULT_DATETIME_TZ_FORMAT); |
| 161 | + return Objects.toString(rs.getTimestamp(index)); |
169 | 162 | } |
170 | 163 | if (className.startsWith("oracle.sql.DATE")) { |
171 | 164 | String metaDataClassName = rs.getMetaData().getColumnClassName(index); |
172 | 165 | if ("java.sql.Timestamp".equals(metaDataClassName) || "oracle.sql.TIMESTAMP".equals(metaDataClassName)) { |
173 | | - return DateUtil.format(rs.getTimestamp(index), DEFAULT_DATETIME_FORMAT); |
| 166 | + return Objects.toString(rs.getTimestamp(index)); |
174 | 167 | } else { |
175 | | - return DateUtil.format(rs.getDate(index), DEFAULT_DATETIME_FORMAT); |
| 168 | + return Objects.toString(rs.getDate(index)); |
176 | 169 | } |
177 | 170 | } |
178 | 171 | if (obj instanceof Date date) { |
179 | 172 | if ("java.sql.Timestamp".equals(rs.getMetaData().getColumnClassName(index))) { |
180 | | - return DateUtil.format(rs.getDate(index), DEFAULT_DATETIME_FORMAT); |
| 173 | + return Objects.toString(rs.getDate(index)); |
181 | 174 | } |
182 | | - return DateUtil.format(date, DEFAULT_DATETIME_FORMAT); |
| 175 | + return Objects.toString(date); |
183 | 176 | } |
184 | 177 | if (obj instanceof LocalDateTime localDateTime) { |
185 | | - return localDateTime.toString(); |
| 178 | + return Objects.toString(localDateTime); |
186 | 179 | } |
187 | 180 | if (obj instanceof LocalDate localDate) { |
188 | | - return localDate.toString(); |
| 181 | + return Objects.toString(localDate); |
189 | 182 | } |
190 | | - if (obj instanceof Number) { |
191 | | - return obj.toString(); |
| 183 | + if (obj instanceof Number num) { |
| 184 | + return Objects.toString(num); |
192 | 185 | } |
193 | | - return obj.toString(); |
| 186 | + return Objects.toString(obj); |
194 | 187 | } |
195 | 188 |
|
196 | 189 | /** |
|
0 commit comments