【问题标题】:When reading data from database it shows decimal value?从数据库读取数据时显示十进制值?
【发布时间】:2020-09-02 09:13:39
【问题描述】:

我正在尝试从显示为十进制值的数据库中读取数据。

数据库中projectno字段为varchar,值为10637。

但是当我检索它时,它显示输出为10637.0 project no

myConn = dataSource.getConnection();

String sql = "Select * FROM jtc_list  where jtcno='"+jtcnum+"' and materialclass='"+matclass+"'";

// create sql statement
myStmt = myConn.createStatement();

// execute query
myRs = myStmt.executeQuery(sql);

while(myRs.next()){
   projectno = myRs.getString("projectno");
   System.out.println(myRs.getString("projectno")+" project no");
}

我该如何解决这个问题?提前谢谢你。

【问题讨论】:

  • 什么是myRs?请在打印之前显示数据库查询中的代码。
  • @Marc 我已经编辑了我的问题,请看一下。

标签: java mysql database string


【解决方案1】:

首先,您可能不将数字数据存储在 MySQL 表的字符列中。除此之外,你说:

值为10637

如果文本值是10637,那么您绝对应该看到以下打印语句:

10637 project no

如果你看到了:

10637.0 project no

那么这意味着您将10637.0 作为文本存储在列中。

一般来说最好的做法是:

  • 将数字数据存储在数字列中(例如INT、DECIMAL、NUMERIC)。
  • 检索数字数据时,例如整数数据,来自您的表,使用 ResultSet#getInt()。
  • 如果您想以某种方式查看您的数字数据,则可以从 MySQL 查询中处理格式,或者从您的 Java 代码中处理。

【讨论】:

  • 谢谢兄弟,我将数据库中的数据类型更改为 Int。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-14
  • 2014-08-07
  • 2014-02-18
  • 2018-06-10
  • 1970-01-01
  • 1970-01-01
  • 2020-10-03
相关资源
最近更新 更多