双值在数据库中存储为零

时间:2014-02-18 05:28:37

标签: java postgresql

我在postgres数据库中有一张表,即。有名称为mark1标记2的学生,其中name为varchar(20),marks1和marks2为双精度数据类型。

我在java类中使用预准备语句

PreparedStatement ps=con.preparestatement("insert into student values(?,?,?);
ps.setString(1,t.getUname());
ps.setDouble(2,t.getUmarks1());
ps.setDouble(3,t.getUmarks2());
status=ps.executeUpdate();

但是当发送一个double值时,它会说出我在问题中提到的上述错误。

我有另一个类,其中定义了getter和setter。具体如下。

public class User {  
private String uname;
       private double umarks1,umarks2;  

public String getUname() {  
 return uname;  
}  

public void setUname(String uname) {  
 this.uname = uname;  
}  

public double getUmarks1() {  
 return umarks1;  
}  

public void setUmarks1(double umarks1) {  
 this.umarks1 = umarks1;  
}  

public double getUmarks2() {  
 return umarks2;  
}  

public void setUmarks2(double umarks2) {  
  this.umarks2 = umarks2;  
 }  

}  

如果我将数据类型更改为double,则会在数据库中保存0。我想保存双倍值。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我认为最好的方法是更改​​Java类以反映您的数据模型

1)将marks字段和getter / setters更改为double

2)将PreparedStatement更改为setDouble

请参阅setDouble