通过JDBC获取ORACLE数据库数据时,返回值统一都是ResultSet对象,就像存储过程中的游标,一行一行的读取数据。对于NUMBER和DATE类型的数据,如果java代码中直接用resultSet.getInt()、resultSet.getDate()等,往往会存在一些精度上的丢失。

  • NUMBER类型

NUMBER数据类型既可以标识整数,也可以表示小数,所以大部分情况下表中的数字类型字段都直接用NUMBER表示,在java中通过JDBC获取时,通过resultSet.getBigDecimal()来接收对应字段的数据,可以有效防止数据精度丢失。

BigDecimal bigDecimal = resultSet.getBigDecimal(s.trim());
  • DATE类型
    ORACLE数据库中的DATE类型数据,可以只表示年月日,也可以加上时分秒,相对而言非常灵活。如果通过resultSet.getDate()获取数据,返回值为java.sql.Date,该类型对象只能表示年月日,精度丢失可能会非常严重。java中还有一个java.util.Date类型,该类型对象却可以表示年月日+时分秒。所以在java中通过JDBC获取时,先将字段按照TimeStampe对象处理,再转换成java.util.Date对象。
                 Timestamp timestamp1 = resultSet.getTimestamp(s.trim());//加上空判断,防止空指针异常if(timestamp1!=null){long time = timestamp1.getTime();//DateFormateUtil.formatDate方法在本地工具包中,将日期转换成对应字符串filedData = DateFormateUtil.formatDate(new Date(time));}
 public static String formatDate(Date date) throws ParseException {//SimpleDateFormat 不能保证线程安全,所以不要声明为静态成员变量SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");return sdf.format(date);}

Oracle数据同步接口中,对于NUMBER、DATE类型数据,从resultSet中直接获取造成精度丢失的解决方案相关推荐

  1. android new date参数,Android向Rest服务Post数据遇到的Date类型数据问题

    今天在Android端向Rest服务Post数据时,总是不成功,查了很多资料,才知道Rest端将json串反序列化时,需要的时间格式必须是UTC类型,及Date(12345678+0800)格式. A ...

  2. linux数据同步技术比较,linux下实现web数据同步的四种方式(性能比较)教程.docx

    linux下实现web数据同步的四种方式(性能比较)教程 实现web数据同步的四种方式=======================================1.nfs实现web数据共享2.rs ...

  3. mysql date类型加一个月jdbc_JDBC操作数据库Date类型数据

    JDBC操作数据库Date类型数据 由于java原生的工具类java.util提供的Date对象与JDBC提供的Date对象并不相同 分别是java.util.Date和java.sql.Date j ...

  4. sql azure 语法_Azure SQL数据同步–在Azure SQL数据库之间复制数据和架构更改

    sql azure 语法 In this article, we will review how to configure the sync group to replicate data betwe ...

  5. 异构数据库数据同步工具DataX教程,安装、数据同步、java执行

    前言 DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL.Oracle.SqlServer.Postgre.HDFS.Hive.ADS.HBase.TableStor ...

  6. 大数据-数仓-数据采集-业务数据(二):全量同步采集【MySQL<-->DataX(全量)<-->HDFS】【每日全量:每天都将业务数据库中全部数据同步到数据仓库,是保证两侧数据同步的最简单方式】

    DataX源码地址:GitHub - alibaba/DataX: DataX是阿里云DataWorks数据集成的开源版本. 一.第1章 DataX介绍 1.1 DataX概述 1. 介绍:DataX ...

  7. Elasticsearch 分布式搜索引擎 -- 数据同步:数据同步思路分析 实现elasticsearch与数据库数据同步

    文章目录 1. 数据同步思路分析 1.1 同步调用 1.2 异步通知 1.3 监听binlog 1.4 小结 2. 实现数据同步 2.1 导入hotel-admin 2.2 声明交换机.队列 1)引入 ...

  8. java date 日期格式_如何将JAVA DATE类型的日期 转换成指定格式类型的 (如:YYYY-MM-DD) 的 DATE类型数据?...

    展开全部 Date类型并没有格式32313133353236313431303231363533e58685e5aeb931333433653262,只有转换成String格式的时候让格式化显示. n ...

  9. java date类型大小比较_java中date类型如何比较大小

    java中date类型如何比较大小 时间:2018-01-19     来源:Java data类型讲解 Date类在jdk1.1中就已经出现,算得上一个比较有历史的类了,用来表示日期时间.在实际的工 ...

最新文章

  1. java coding_java coding学习
  2. LabelImg操作及快捷键
  3. java学习(162):同步对象锁
  4. 【转】处事22计、心态24条、伤心50句、礼仪73、学会长大20!
  5. javaSE-基础篇-经典赋值:两变量值的交换
  6. python标准输入输出语句_Python“门卫”之输入输出
  7. 学习SQLAlchemy Core
  8. rpm包安装失败的解决办法
  9. STM32F103--移植FreeRTOS完整教程
  10. 2021-05-22下载ts m3u8视频方法
  11. CDH初始化scm_prepare_database.sh数据库遇到的问题
  12. 计算机如何更改键盘设置在哪里设置,原神pc按键怎么改
  13. 企业级无线无缝漫游之思创漫游3.0 Plus ,三层漫游
  14. ckpt2npy和npy2ckpt转换
  15. Springboot疫情防控下基于微信小程序的食堂订餐系统 毕业设计-附源码261620
  16. 大学生学剪辑蒙太奇技巧怎么用?
  17. RDF 1.1 N-Triples
  18. ios降级鸿蒙,iOS14怎么降级 ios14降级到ios13详细教程
  19. java jdk7,jdk8连接oracle19C数据库ojdbc驱动
  20. zblog php 自适应,ZblogPhp模版-BlogCms+自适应

热门文章

  1. 如何在'纯'Swift中创建弱协议引用(不带@objc)
  2. 将光标放在EditText的文本末尾
  3. Shiro 支持三种方式的授权
  4. 循环报数java代码_循环报数 Java实现
  5. linux mint 18安装中文,无法在Linux Mint 18.1“Serena”下安装pyFFTW
  6. java算法腐烂橘子,答案——腐烂的橘子算法题目
  7. qt opengl 2d绘图效率_Qt趣味开发之打造一个3D名字渲染小工具
  8. 基础选择器之id选择器(CSS、HTML)
  9. mysql之解决查询表时区分大小写的问题
  10. oracle12c视图刷新,Oracle可更新视图