【问题标题】:How to Insert time in mysql using java如何使用java在mysql中插入时间
【发布时间】:2013-09-18 22:44:56
【问题描述】:

我正在做一个餐饮项目租赁服务的项目。他们希望保存客户租用物品的日期和时间,同时也保存客户归还物品的日期和时间。当然,其中任何一个在移动日期或时间都不会是实际的。所以首先我试图找到保存任何日期和时间。其他活动将在稍后关注。所以我想出了小桌子。如下所示。

 ID   |  Name     |  Value   |    Date    |    Time
(int) | (Varchar) |( Double) | (DateTime) | (DateTime)

我用这条线来保存数据。

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) 
{                                         
     String date=new SimpleDateFormat("yyyy-MM-dd").format(dat.getDate()); 
     String time = String.valueOf(dateSpinner.getValue()).split(" ")[3];

     try {                                                                                                                                                
         new JDBC().putData("INSERT INTO work (name, balance, date) VALUES ('"+txtName.getText()+"',"+txtValue.getText()+"', '"+date+"', '"+time+"') ");
         JOptionPane.showMessageDialog(null, "value saved");
     } catch (Exception e) {
         JOptionPane.showMessageDialog(null, this.getClass().getName() +" "+e);
     } 
}  

当我输入数据时,我有

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 3" .

帮我找出这条线的错误并节省任何时间。实际上,我可以使用 String Date 变量保存任何日期。在将时间字段添加到表之前,我保存了一些演示数据。但是当我试图节省时间时,我遇到了这个问题。我正在使用日期微调器来节省时间。但我无法将其格式化为HH-mm--ss。如果您知道另一个节省时间的功能,请告诉我。请帮我。

【问题讨论】:

  • 什么是String.valueOf(dateSpinner.getValue()).split(" ").length?或者更好的是,String.valueOf(dateSpinner.getValue()) 是什么?
  • SQL 语句也有错误。您只定义了三列,但您尝试添加四个值。
  • 你在这一行有错误:String time = String.valueOf(dateSpinner.getValue()).split(" ")[3];索引[3]不存在。
  • @lucian 我将其更正为 new JDBC().putData("INSERT INTO work (name, balance, date) VALUES ('"+txtName.getText()+"','"+txtValue .getText()+"', '"+日期+"') ");所以我可以像以前一样保存我选择的日期。但是伙计们,如果我不使用 String time = String.valueOf(dateSpinner.getValue()).split(" ")[3];我要用什么来节省我想要的时间。请给我解释一下。提供一个节省时间的好选择。
  • @lucian 我也删除了 [3]。仍然有保存错误。

标签: java mysql date datetime


【解决方案1】:

这一行:

String time = String.valueOf(dateSpinner.getValue()).split(" ")[3];

和这个一样,只是在一行上做

String[] splitArr = String.valueOf(dateSpinner.getValue()).split(" ");
String time = splitArr[3];

您得到的错误是拆分数组中没有 4 个元素。输入下面的代码来调试你得到的东西,这样你就知道那一行发生了什么

String[] splitArr = String.valueOf(dateSpinner.getValue()).split(" ");
for(int i = 0; i < splitArr.length; i++)
{
     System.out.println("Element number " + i + " is \"" + splitArr[i] + "\"");
}

然后您可以适当地更新您的插入。抱歉,我无法提供更多帮助,但我们不知道 datespinner 是什么或 datespinner.getValue() 返回什么,因此请执行上述操作以帮助调试您的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-16
    • 1970-01-01
    • 1970-01-01
    • 2011-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多