Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HTTP状态400–;尝试将日期保存到数据库时请求错误_Java_Hibernate_Date_Spring Mvc - Fatal编程技术网

Java HTTP状态400–;尝试将日期保存到数据库时请求错误

Java HTTP状态400–;尝试将日期保存到数据库时请求错误,java,hibernate,date,spring-mvc,Java,Hibernate,Date,Spring Mvc,JSP页面: 和休眠会话: @Override @Transactional public void addVisit(Visit visit) { Session session = sessionFactory.getCurrentSession(); session.save(visit); } 它在没有日期输入时工作,因为它可以为空 如何预先输入日期并将其保存在Java对象Java.util.date中,然后将其保存到数据库中?以下步骤 创建日期类型的列 @Colu

JSP页面:

和休眠会话:

 @Override
@Transactional
public void addVisit(Visit visit) {
    Session session = sessionFactory.getCurrentSession();
    session.save(visit);
}
它在没有日期输入时工作,因为它可以为空

如何预先输入日期并将其保存在Java对象Java.util.date中,然后将其保存到数据库中?

以下步骤

  • 创建日期类型的列

    @Column(name = "DATEOFBIRTH", nullable = false, length = 32)
    private Date dateOfBirth;
    
  • 使用旧API 2a。使用
    SimpleDataFormat

        public static Date convertStringToDate(String dateInString) {
            SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMM dd, yyyy HH:mm:ss a");
            Date date = null;
            try {
                date = formatter.parse(dateInString);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            return date;
        }
    
    将返回到数据库的日期与其他数据一起保存

    仅对日期使用新API

    2b. String str = "01/01/2015";
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
            LocalDate dateTime = LocalDate.parse(str, formatter);
            System.out.println(dateTime.format(formatter)); // not using toString
    
    对日期时间使用新API

    2c. String str = "01/01/2015 12:32:21";
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm:ss");
            LocalDateTime dateTime = LocalDateTime.parse(str, formatter);
            System.out.println(dateTime.format(formatter)); // not using toString
    

    @Raspberry编辑了新API JDK8的答案是否有办法避免过时的类
    Date
    SimpleDateFormat
    ?可以用
    java.time
    来代替吗?我想是的,我会在尝试后发布一个答案
    2b. String str = "01/01/2015";
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
            LocalDate dateTime = LocalDate.parse(str, formatter);
            System.out.println(dateTime.format(formatter)); // not using toString
    
    2c. String str = "01/01/2015 12:32:21";
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm:ss");
            LocalDateTime dateTime = LocalDateTime.parse(str, formatter);
            System.out.println(dateTime.format(formatter)); // not using toString