java中用preparedstatement向mysql日期字段插入问题
String sql = "insert into pause_number(userId,beginDate,endDate,remark) values(?,?,?,?)"; pstmt = DB.prepareStmt(conn, sql); pstmt.setInt(1, pauseNumber.getUserId()); pstmt.setDate(2, java.sql.Date.valueOf(pauseNumber.getBeginDate())); pstmt.setDate(3, java.sql.Date.valueOf(pauseNumber.getEndDate())); pstmt.setString(4, pauseNumber.getRemark()); pstmt.execute(); 当pauseNumber.getBeginDate()值为""时java.sql.Date.valueOf(pauseNumber.getBeginDate())会抛出异常 为了解决""问题我写代码判断pauseNumber.getBeginDate()为空串时设置beginDate值为"0000-00-00" 当执行java.sql.Date.valueOf(pauseNumber.getEndDate())转换时0000-00-00变成了0002-11-30 请问怎么解决?
直接set成string就行,不需要转成data类型。 我的字段是Date型的。 一样,没有影响,只要能保证字符串是标准格式的就行,类似这样的就行 "2009-01-10" 如果日期格式正确是没问题啊,但如果用户没有选择日期时就是空串了会出错啊。 我希望的是用户不选择日期时,日期字段为默认的0000-00-00值引用 引用我希望的是用户不选择日期时,日期字段为默认的0000-00-00值 这个没办法,你必须在你的程序进行判断把空串变成 '0000-00-00' 正确。 yangxiao_jiang 说的对,直接用setString,字符串格式正确就可以了。引用 yangxiao_jiang 说的对,直接
相关问答:
我想用Java写一个程序,就是我想在运行代码后,在指定的时间打开某程序,例如我运行代码后,讲在12:00打开"D:\Program Files\Tencent\QQ2009\Bin\QQ.exe"这个程序,求高人指点。还有可能的话在指定的时间 ......
我希望在编辑文字后把发送键改到屏幕中间,具体说就是 在kb.class中的部分作出修改 部分代码: V = new TextBox(ld.a(383), "", 190, 0); X = new Comma ......
问题是这样的: 我有一个文件nagiv.jsp 另一个文件failure.jsp包含他,同时nagiv文件中有一个可以跳转到yy.jsp的commandButton,但是我将failure中点击nagiv中的哪个commandButton,也面不会跳转 ......
我需要在一个for循环里面每循环一次后,暂停n秒钟,再执行下一次循环.我不想用Thread.sleep(n);这个方法,请问还有其他的方法可以实现这个简单要求吗?有简单代码更好,谢谢! 期待好的方法! 我知道的也就是这个了
......
先上错误 无法联接数据库 java.sql.SQLException: Before start of result set at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910) at com.mysql.jdbc.ResultSet.checkRowPos(ResultSet.java: ......