如何在java中插入日期和时间
我正在用JDBC oracle数据库在Netbeans IDE中做一个java项目。我需要在数据库中插入日期和时间,格式为11/16/2013 10:30。 我在下面附上了我的代码 在数据库连接器中插入代码如何在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
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