在JSP页面输入日期如:2008-06-06,然后SERVLET获取,我获取的时候是用String获取的,然后插入到数据库,我的数据库是DATE类型的,与前面的日期格式一样,但是实现的时候却是空值.

解决方案 »

  1.   

    你的情况没说清楚 
    1.你request的时候有没有值,
    2.你是如果用手写sql的话,不需要转化,不存在NULL,只可能是"";
    3,用hibernate的话,转化成DATE,可能有错
      

  2.   


        protected void doPost(HttpServletRequest request,
                HttpServletResponse response) throws ServletException, IOException {
            Connection conn = null;//Get connection
            try {
                String sql = "insert into Table(DateColumn) values (?)";
                String dateStr = "2008-06-06";
                PreparedStatement pstmt = conn.prepareStatement(sql);
                pstmt.setDate(1, new java.sql.Date(new SimpleDateFormat(
                        "yyyy-MM-dd").parse(dateStr).getTime()));
            } catch (Exception e) {
                e.printStackTrace();
            }
        }加上取得,关闭连接之类的。
      

  3.   

    MYSQL中字段是Date类型的话,问题不大,在JavaBean里面时间日期可以直接用String表示的方法1:用JDBC直接插字符串
    INSERT INTO users(username,birthday) VALUES('Ray','1979-9-25');方法2:使用Hibernate
    <property name="birthday" type="java.lang.String">
      <column name="birthday"/>
    </property>
    也不会有问题如果要格式化时间日期格式的话,可以用SimpleDateFormat
      

  4.   

    String myBirthday=ut.get("Birthday");
    myBirthday=Data.hasValue(myBirthday)?Data.dateFormat(myBirthday,"MM/dd/yyyy hh:mm:ss", "yyyy-MM-dd"):"";更新时候想存入数据库格式应如下
    .setUpdateValue("Birthday",java.sql.Date.valueOf(Birthday));