方法 oracl.sql.Timestamp转java.util.Date
借助basicName获取timestamp字段,MySQL返回java.sql.Timestamp,而Oracle返回oracle.sql.Timestamp;
timestampValue继承了java.util.Date,所以可以借此来讲oracle中的timestamp字段在jdbc的获取方式下,转换为util下的Date类并格式化,then done!
/** * 转换映射表映射值 * * @param obj * 转换对象 * @param dataType * 转换类型 1-字符串;2-小数;3-整型;4-日期时间 * @param dataFormat * 转换格式 * @param jsonMap * 映射数据 * @return * @throws SQLException */ private Object transferMappingValues(Object obj, int dataType, String dataFormat, Map<String, String> jsonMap) throws SQLException { // 1.判断类型;2.转换格式;3.取关联值 String basicName = obj.getClass().getSimpleName(); switch (dataType) { case 1: case 3: // 字符串,整型:不需转格式 break; case 2: // 小数,默认不截取 if (obj == null || "".equals(obj)) { // 数据库无值且无默认值,赋值0 return 0; } if (!StringUtil.isNullOrEmpty(dataFormat)) { int decimal = Integer.parseInt(dataFormat); if (decimal >= 0) { String format = String.format("%.0" + decimal + "f", Double.parseDouble(obj.toString())); obj = (StringUtil.isNullOrEmpty(format) ? obj : Double.parseDouble(format)); } } break; case 4: // 日期时间 if (obj == null || "".equals(obj)) { // 数据库无值且无默认值,赋值‘’ return ""; } if ("Date".equals(basicName)) { if (!StringUtil.isNullOrEmpty(dataFormat)) { obj = new SimpleDateFormat(dataFormat).format(obj); } } // mysql if ("Timestamp".equals(basicName)) { Date date = (Timestamp)obj; if (!StringUtil.isNullOrEmpty(dataFormat)) { obj = new SimpleDateFormat(dataFormat).format(date); } } // oracle if ("TIMESTAMP".equals(basicName)) { TIMESTAMP t = (TIMESTAMP)obj; Date date = t.timestampValue(); if (!StringUtil.isNullOrEmpty(dataFormat)) { obj = new SimpleDateFormat(dataFormat).format(date); } } break; default: break; } return jsonMap.get(obj + "") == null ? StringUtil.getObjectByDataType(obj) : jsonMap.get(obj + ""); }
雨淋淋过的季节
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!