如何使用jsp在mysql中插入日期?

时间:2013-03-25 08:46:26

标签: java

这是我编辑过的代码......

         java.sql.Timestamp sqlNow = new java.sql.Timestamp(new java.util.Date().getTime());

                stmt = con.createStatement();
    //stmt.executeUpdate("INSERT INTO cregn values('"+appno+"','"+usname+"','"+upwd +"','"+fname+"','"+mname+"','"+lname+"','"+dob+"','"+gend+"','"+faname+"','"+saddr+"','"+caddr+"','"+staddr +"','"+pin+"','"+cno+"','"+email+"','"+occ+"','"+secques+"','"+answer+"','Processing','"+sqlNow+"')");
                pst = con.prepareStatement("INSERT INTO cregn (aplno, username, pwd, firstname,middlename,lastname, dob,gender, fathername, street,city,state, pincode, phone, email,occupation,secques,answer,dor)  VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");

                pst.setInt(1, appno);
                pst.setString(2, usname);
                pst.setString(3, upwd);
                pst.setString(4, fname);
                pst.setString(5, mname);
                pst.setString(6, lname);
                pst.setString(7, dob);
                pst.setString(8, gend);
                pst.setString(9, faname);
                pst.setString(10, saddr);
                pst.setString(11, caddr);
                pst.setString(12, staddr);
                pst.setString(13, pin);
                pst.setString(14, cno);
                pst.setString(15, email);
                pst.setString(16, occ);
                // pst.setString(17,ph);
                pst.setString(17, secques);
                pst.setString(18, answer);

                pst.setTimestamp(19, sqlNow);

                pst.executeUpdate();

                out.println("Registration Successful for application " + appno);
            } catch (Exception ee) {
                out.println("Invalid Data! All fields are mandatory..." + ee.getMessage());
            }


%>

执行此代码错误后显示“无效数据!所有字段都是强制性的...数据截断”

4 个答案:

答案 0 :(得分:3)

您没有执行该声明。

您需要调用executeUpdate

答案 1 :(得分:2)

您必须在pst上致电executeexecuteUpdate才能真正开展工作。例如,最后:

pst.executeUpdate();

您显示的所有代码都是准备执行语句,它不会执行它。这是PreparedStatementStatement之间的主要差异之一。在Statement中,您将SQL传递给executeUpdate直接执行(如使用stmt在注释掉的行中所示)。使用PreparedStatement,您可以使用?提供SQL,设置这些参数,然后调用executeUpdate(或execute ),你没有做过。

答案 2 :(得分:0)

executeUpdate()上没有调用pst

答案 3 :(得分:0)

使用pst.executeUpdate();执行查询,并确保在事务中使用setAutoCommit(true)必须被调用。