由于日期无法解析,我不断收到 parseException?

发布于 2025-01-09 09:07:03 字数 877 浏览 3 评论 0原文

@Override
public OrderModel loadOrder(int orderID) {
    OrderModel order = null;
    try {
        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT * FROM 'Order' WHERE OrderID = " + orderID);
        if (rs.next()) {
            order = new OrderModel();
            order.orderID = rs.getInt(1);
            "order.orderDate = rs.getDate(2);"
            order.customer = rs.getString(3);
            order.totalCost = rs.getDouble (4);
            order.totalTax = rs.getDouble(5);

        }

    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return order;

}

当我尝试从数据库加载此信息时,我不断收到此错误。有谁知道可能是什么原因造成的。它说我放在引号中的那行是问题所在。

引起原因:java.text.ParseException:无法解析的日期:“2005-25-06”不匹配 (\p{Nd}++)\Q-\E(\p{Nd}++)\Q-\E (\p{Nd}++)\Q \E(\p{Nd}++)\Q:\E(\p{Nd}++)\Q:\E(\p{Nd}++)\Q.\E(\p{Nd} ++)

@Override
public OrderModel loadOrder(int orderID) {
    OrderModel order = null;
    try {
        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT * FROM 'Order' WHERE OrderID = " + orderID);
        if (rs.next()) {
            order = new OrderModel();
            order.orderID = rs.getInt(1);
            "order.orderDate = rs.getDate(2);"
            order.customer = rs.getString(3);
            order.totalCost = rs.getDouble (4);
            order.totalTax = rs.getDouble(5);

        }

    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return order;

}

I keep getting this error when ever i try to load this info from my data base. Does anybody have a idea on what might be causing this. It says the line that I put in the quotation marks is the problem.

Caused by: java.text.ParseException: Unparseable date: "2005-25-06" does not match (\p{Nd}++)\Q-\E(\p{Nd}++)\Q-\E(\p{Nd}++)\Q \E(\p{Nd}++)\Q:\E(\p{Nd}++)\Q:\E(\p{Nd}++)\Q.\E(\p{Nd}++)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

活雷疯 2025-01-16 09:07:03

您正在使用有严重缺陷的 java.sql.Date 类。该类多年前已被 JSR 310 中定义的现代 java.time 类取代。

从类似于 SQL 标准的类型的数据库列中检索时,请使用 LocalDate 代替输入日期

LocalDate ld = myResultSet.getObject( … , LocalDate.class ) ;

另外,请确保数据库列的数据类型正确,而不是文本类型,例如 VARCHAR

You are using the terribly flawed java.sql.Date class. That class was supplanted years ago by the modern java.time classes defined in JSR 310.

Use LocalDate instead when retrieving from a database column of a type akin to the SQL-standard type DATE.

LocalDate ld = myResultSet.getObject( … , LocalDate.class ) ;

Also, be sure the database column is of the correct data type rather than a textual type such as VARCHAR.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文