如何在java中插入日期和时间

如何在java中插入日期和时间,java,sql,jdbc,oracle11g,syntax-error,Java,Sql,Jdbc,Oracle11g,Syntax Error,我正在用JDBC oracle数据库在Netbeans IDE中做一个java项目。我需要在数据库中插入日期和时间,格式为11/16/2013 10:30。 我在下面附上了我的代码 在数据库连接器中插入代码 public void insert(String id, String uid, String vmid, String ttid, String faid, String taid, String fdate, String tdate, String onbooking, String

我正在用JDBC oracle数据库在Netbeans IDE中做一个java项目。我需要在数据库中插入日期和时间,格式为11/16/2013 10:30。 我在下面附上了我的代码

在数据库连接器中插入代码

public void insert(String id, String uid, String vmid, String ttid, String faid, String taid, String fdate, String tdate, String onbooking, String msbooking, String bcreated)
            throws SQLException {
        Statement stmt = null;
        String query = "Insert into DMUSER.CAB2("
                + "ID,"
                + "USER_ID,"
                + "VEHICLE_MODEL_ID,"
                + "TRAVEL_TYPE_ID,"
                + "FROM_AREA_ID,"
                + "TO_AREA_ID,"
                + "FROM_DATE,"
                + "TO_DATE,"
                + "ONLINE_BOOKING,"
                + "MOBILE_SITE_BOOKING,"
                + "BOOKING_CREATED"
                + ") values ("
                + id + ","
                + uid + ","
                + vmid + ","
                + ttid + ","
                + faid + ","
                + taid + ","
                + fdate + ","
                + tdate + ","
                + onbooking + ","
                + msbooking + ","
                + bcreated + ""
                + ")";
按钮点击事件

private void btn_insertActionPerformed(java.awt.event.ActionEvent evt) {                                           

    txt_id.setText("132536");
    txt_user_id.setText("16");
    txt_vechile_mdl_id.setText("28");
    txt_from_area_id.setText("58");
    txt_to_area_id.setText("1063");
    txt_frm_date.setText("11/16/2013 9:30");
    txt_to_date.setText("NULL");
    txt_booking_created.setText("11/16/2013 9:30");
    txt_travel_type_id.setText("2");
    txt_mobile_site_booking.setText("0");
    txt_online_booking.setText("1");
} 

private void btn_predictionActionPerformed(java.awt.event.ActionEvent evt) {                                               
        try {

            String id = txt_id.getText();
            String uid = txt_user_id.getText();
            String vmid = txt_vechile_mdl_id.getText();
            String ttid = txt_travel_type_id.getText();
            String faid = txt_from_area_id.getText();
            String fdate = txt_frm_date.getText();
            String tdate = txt_to_date.getText();
            String onbooking = txt_online_booking.getText();
            String msbooking = txt_mobile_site_booking.getText();
            String bcreated = txt_booking_created.getText();
            String taid = txt_to_area_id.getText();

            DB_Connector con = new DB_Connector();

            try {
                con.insert(id, uid, vmid, ttid, faid, taid, fdate, tdate, onbooking, msbooking, bcreated);
            } catch (SQLException ex) {
Logger.getLogger(CabCancellationUI.class.getName()).log(Level.SEVERE,null,ex); } }捕获(例外情况除外){ } }

这里的问题是,在数据库中,日期列位于
VARCHAR
datatype中,因此如何将此11/16/2013 10:30插入数据库。请帮我整理一下

编辑:发生异常

查询::插入到 DMUSER.CAB2(ID、用户ID、车辆型号ID、旅行类型ID、从地区ID、到地区ID、从日期、到日期、在线预订、移动站点预订、预订创建) 数值(132536,16,28,2,581063,11/16/2013 10:30,空,1,0,01) java.sql.SQLSyntaxErrorException:ORA-00917:缺少逗号

在 oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:91) 在 oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133) 在 oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:206) 位于的oracle.jdbc.driver.t4cttiore.processError(t4cttiore.java:455) 位于的oracle.jdbc.driver.t4cttiore.processError(t4cttiore.java:413) 位于的oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1034) oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:183)位于 oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:942) 在 oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1222) 在 oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatement.java:1706) 在 oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1674) 在 oracle.jdbc.driver.OracleStatementWrapper.executeUpdate(OracleStatementWrapper.java:275) 在Database.DB_Connector.insert(DB_Connector.java:78)处 UI.CabCancellationUI.btn\u predictionActionPerformed(CabCancellationUI.java:365) 在UI.CabCancellationUI.access$500(CabCancellationUI.java:28) UI.CabCancellationUI$6.actionPerformed(CabCancellationUI.java:151)在 fireActionPerformed(AbstractButton.java:2022) 在 javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) 在 fireActionPerformed(DefaultButtonModel.java:402) 在 setPressed(DefaultButtonModel.java:259) 在 javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) 位于java.awt.Component.ProcessMouseeEvent(Component.java:6535) javax.swing.JComponent.ProcessMouseeEvent(JComponent.java:3324)位于 java.awt.Component.processEvent(Component.java:6300)位于 java.awt.Container.processEvent(Container.java:2236)位于 dispatchEventImpl(Component.java:4891)位于 dispatchEventImpl(Container.java:2294)位于 dispatchEvent(Component.java:4713)位于 awt.LightweightDispatcher.RetargetMouseeEvent(Container.java:4888) 在 java.awt.LightweightDispatcher.ProcessMouseeEvent(Container.java:4525) 位于java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466) 位于java.awt.Container.dispatchEventImpl(Container.java:2280) dispatchEventImpl(Window.java:2750)位于 dispatchEvent(Component.java:4713)位于 dispatchEventImpl(EventQueue.java:758)位于 访问$500(EventQueue.java:97) java.awt.EventQueue$3.run(EventQueue.java:709)在 java.awt.EventQueue$3.run(EventQueue.java:703)在 java.security.AccessController.doPrivileged(本机方法)位于 ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) 在 ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) 在java.awt.EventQueue$4.run(EventQueue.java:731)处 java.awt.EventQueue$4.run(EventQueue.java:729)在 java.security.AccessController.doPrivileged(本机方法)位于 ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) 位于java.awt.EventQueue.dispatchEvent(EventQueue.java:728) java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 在 java.awt.EventDispatchThread.PumpeEventsforFilter(EventDispatchThread.java:116) 在 java.awt.EventDispatchThread.PumpeEventsforHierarchy(EventDispatchThread.java:105) 在 java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 在 EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 在java.awt.EventDispatchThread.run(EventDispatchThread.java


问题并不是你想的那样。例外情况是,插入数据的sql语法错误

您需要在insert方法中更正查询字符串。此外,您接受为字符串的每一个表列似乎都不正确。请考虑表中每一列的正确数据类型,例如ID应该是number,而不是varchar,等等

如果每个参数都是字符串类型,则正确的代码必须在查询字符串中的参数前后添加
,如下所示:

String query = "Insert into DMUSER.CAB2("
            + "ID,"
            + "USER_ID,"
            + "VEHICLE_MODEL_ID,"
            + "TRAVEL_TYPE_ID,"
            + "FROM_AREA_ID,"
            + "TO_AREA_ID,"
            + "FROM_DATE,"
            + "TO_DATE,"
            + "ONLINE_BOOKING,"
            + "MOBILE_SITE_BOOKING,"
            + "BOOKING_CREATED"
            + ") values ("
            + "'"+ id + "',"
            + "'" + uid + "',"
            + "'" + vmid + "',"
            + "'" + ttid + "',"
            + "'" + faid + "',"
            + "'" + taid + "',"
            + "'" + fdate + "',"
            + "'" + tdate + "',"
            + "'" + onbooking + "',"
            + "'"+ msbooking + "',"
            + "'"+bcreated + "'"
            + ")";

最后,这是一段糟糕的代码。您应该考虑使用PreparedStatement。

问题不是您所想的。例外情况是,插入数据的sql语法错误

您需要在insert方法中更正查询字符串。此外,您接受为字符串的每一个表列似乎都不正确。请考虑表中每一列的正确数据类型,例如ID应该是number,而不是varchar,等等

如果每个参数都是ty