Java 从数据库读取数据时,它显示十进制值?
我试图从数据库中读取数据,它显示为十进制值 数据库中的projectno字段为varchar,值为10637 但当我检索时,它显示输出为Java 从数据库读取数据时,它显示十进制值?,java,mysql,database,string,Java,Mysql,Database,String,我试图从数据库中读取数据,它显示为十进制值 数据库中的projectno字段为varchar,值为10637 但当我检索时,它显示输出为10637.0项目编号 myConn = dataSource.getConnection(); String sql = "Select * FROM jtc_list where jtcno='"+jtcnum+"' and materialclass='"+matclass+"'"; //
10637.0项目编号
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");
}
我如何解决这个问题?首先,您可能不应该在MySQL表的字符列中存储数字数据。除此之外,你说: 值是10637 如果文本值字面上是
10637
,那么您绝对应该看到以下打印语句:
10637 project no
相反,如果您看到:
10637.0 project no
这意味着您将10637.0
作为文本存储在列中
一般来说,最好的做法是:
- 将数字数据存储在数字列中(例如,
,INT
,DECIMAL
)numeric
- 从表中检索数字数据(例如整数数据)时,请使用
ResultSet\getInt()
- 如果您想以某种方式查看数字数据,那么可以从MySQL查询中处理格式,或者从Java代码中处理格式
10637
,那么您绝对应该看到以下打印语句:
10637 project no
相反,如果您看到:
10637.0 project no
这意味着您将10637.0
作为文本存储在列中
一般来说,最好的做法是:
- 将数字数据存储在数字列中(例如,
,INT
,DECIMAL
)numeric
- 从表中检索数字数据(例如整数数据)时,请使用
ResultSet\getInt()
- 如果您想以某种方式查看数字数据,那么可以从MySQL查询中处理格式,或者从Java代码中处理格式
myRs
?请显示数据库查询中的代码,直到打印出来。@Marc我已经编辑了我的问题,请看一看。什么是myRs
?请显示数据库查询中的代码,直到打印出来。@Marc我已经编辑了我的问题,请看一看。谢谢兄弟,我将数据库中的数据类型更改为Int。谢谢兄弟,我将数据库中的数据类型更改为Int。