日期:2014-05-17  浏览次数:20820 次

如何解决输入数据库的DATA型与FLOAT型为空的问题
我用的是TOMCAT 服务器+mysql数据库。我准备在数据库里插入一个日期和一个float型的值。但是通过request的取值都是字符型的。因为数据库里的字段是data型与float型。因此我在插入程序必须把request的取值由string型转变为data型和float。
对于string 转data型,我用的代码如下:
 
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
java.util.Date sign_date1=format.parse(request.getParameter("sign_date"));
 java.sql.Date sign_date=new java.sql.Date(sign_date1.getTime());
 
上诉代码没问题。
 
对于string 转 float型,我用的代码如下:
float price = Float.valueOf(request.getParameter("price"));
 
现在的问题是:
当request.getParameter取值是空值的时候,程序总是抛出空指针的异常。导致插入数据库失败。
 
我现在想在插入之前做一个判断,如果取值非空的时候执行string 转data 和string 转float。
如果取值为空的时候。我想data型和float的变量赋值为null。并和其他的string 字段一起插入到mysql数据库中。
我在网上找了很多的资料,但是总是无法通过编译插入成功。希望各位大虾能帮我看下这段代码怎么写比较好。


------解决方案--------------------
用的是PreparedStatement么?

可以用 Float 来代替 float,因为Float可以表示null

另一种就是用:ps.setNull(int parameterIndex, int sqlType);
------解决方案--------------------
哎我就奇怪了,为啥不这么用?
Java code

String sPrice = request.getParameter("price");
float price = 0f;
try{
  price = Float.parseFloat(sPrice);
}catch(...){...}