oracle中的person表中birth字段是date类型的,请问怎样在jdbc 中pstmt.setDate()里添加birth内容,我试过new Date()
Date.valueOf("2000-01-01")之类的都报错,请大家给我举个具体例子,谢谢了!

解决方案 »

  1.   

    Date date = new Date();//当前时间user.setAdddate(new java.sql.Date((date.getTime())));//存入数据库
      

  2.   

    1.Date date = new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
    sDate = sdf.format(date);
    Person person=new Person();
    person.setBirthday(sDate);//现在传入String类型
    2. 对数据库操作的时候
     String sSQL = "INSERT INTO Person(字段1,字段2,d_birthday) VALUES(?,?,to_date(?,'YYYY-MM-DD HH24:MI:SS'))
     PreparedStatement pstmt = conn.prepareStatement(sSQL);
            pstmt.setString(1, person.get***());
            pstmt.setString(2, person.get***());
            pstmt.setString(3, email.getBirthday());
            int num = pstmt.executeUpdate();
            conn.commit();
      

  3.   

    String sql = "insert into t_user(account, password, birthday, sex, name, nickname, country, pswquestion, " +
    "pswanswer, star, blood, address, email) values(?,?,?,?,?,?,?,?,?,?,?,?,?)";
    pst = con.prepareStatement(sql);//执行
    pst.setString(1, user.getAccount());
    pst.setString(2, user.getPassword());
    pst.setDate(3, new java.sql.Date(user.getBirthday().getTime()));
    pst.setString(4, user.getSex());
    pst.setString(5, user.getName());
    pst.setString(6, user.getNickName());
    pst.setString(7, user.getCountry());
    pst.setString(8, user.getPswquestion());
    pst.setString(9, user.getPswanswer());
    pst.setString(10, user.getStar());
    pst.setString(11, user.getBlood());
    pst.setString(12, user.getAddress());
    pst.setString(13, user.getEmail());
    pst.execute();这是我以前用的例子user.getBirthday()取出来的是java.util.Date
    在这里进行了转化,转化成了java.sql.Date()这样就可以存入数据库了在前台
    开始输入都是字符串
    比如有个日期格式
    String dateStr = "2000-01-01";
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Date birthday = sdf.parse(birthdayStr);
    user.setBirthday(birthday);
    这样就存入了日期这只是一种方法,楼主可以参考!
      

  4.   

    上面红色没显示出来,再来一次
    pst.setDate(3, new java.sql.Date(user.getBirthday().getTime()));
      

  5.   

    取出来的时间是00:00:00这是怎么回事呢?
    因为你没存时间进去,oracle默认的date类型有时间