我正在使用JDBC oracle数据库在Netbeans IDE中执行一个java项目。并且,我需要将日期和时间插入数据库中,格式为11/16/2013 10:30。 我附上我的代码如下。在DBConnector如何在java中插入日期和时间
插入代码
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())。日志(Level.SEVERE,空,前) ; } }赶上(例外){} }
这里的问题是,在数据库中的日期列在VARCHAR
数据类型,所以我怎么能插入此二○一三年十一月一十六日10:30成请帮我解决这个问题。
编辑:异常发生
QUERY ::插入到 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) 值(132536 ,16,28,2,58,1063,11 /二千零十三分之一十六10:30,NULL,1,0,01) java.sql.SQLSyntaxErrorException:ORA-00917:在 oracle.jdbc缺少逗号
.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:91) at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133) 在 oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:206) 在oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer。 java:455)at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1034)at oracle.jdbc.driver.T4CStatement。 doOall8(T4CStatement.java:183)在 oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:942) 在 oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1222) 在 预言。 jdbc.driver.OracleStatement.executeUpdateInternal(ORAC leStatement.java:1706) 在 oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1674) 在 oracle.jdbc.driver.OracleStatementWrapper.executeUpdate(OracleStatementWrapper.java:275) 在Database.DB_Connector。插入(DB_Connector.java:78)在 UI.CabCancellationUI.btn_predictionActionPerformed(CabCancellationUI.java:365) 在UI.CabCancellationUI.access $ 500(CabCancellationUI.java:28)在 UI.CabCancellationUI $ 6.actionPerformed(CabCancellationUI.java: (javax.swing.AvastractButton)$ Handler.actionPerformed(AbstractButton.java:2348) 在 javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) 在 javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel。的java:259) 在 javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) 在java.awt.Component.processMouseEvent(Component.java:6535)在 javax.swing.JComponent.processMouseEvent (JComponent.java:3324)at java.awt.Component.processEvent(Component.java:6300)at java.awt.Container.processEvent(Container.java:2236)at java.awt.Component.dispatchEventImpl(Component .java:4891)at java.awt.Container.dispatchEventImpl(Container.java:2294)at java.awt.Component.dispatchEvent(Component.java:4713)at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java :4888) at java.awt.Lightw 8Dispatcher.processMouseEvent(Container.java:4525) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466) at java.awt.Container.dispatchEventImpl(Container.java:2280)at java.awt.Window。 dispatchEventImpl(Window.java:2750)在 java.awt.Component.dispatchEvent(Component.java:4713)在 java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)在 java.awt.EventQueue.access $ 500强(EventQueue.java:97)在 java.awt.EventQueue中的$ 3.run(EventQueue.java:709)在 java.awt.EventQueue中的$ 3.run(EventQueue.java:703)在 java.security.AccessController.doPrivileged (Native Method) java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java :76) 在 java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) 在java.awt.EventQueue中$ 4.run(EventQueue.java:731)在 java.awt.EventQueue中$ 4.run( EventQueue.java:729)维持在 java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) 在java.awt.EventQueue.dispatchEvent java.security.AccessController.doPrivileged(本机方法)(EventQueue.java :728)在 java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 在 java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) 在 JA va.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) 在 java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 在 java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 在java.awt.EventDispatchThread.run(EventDispatchThread.java
运行代码时遇到了什么问题/异常 – guleryuz
我已更新异常问题,请检查 – temp
问题1 - 将所有输入参数化为INSERT语句。如果你不想这样做(你应该),日期/时间文字需要用引号括起来,如'11/16/2013 10:30',如果你仍然想使用文字,你不应该取决于默认的oracle日期格式,这可能会因系统而异,所以应该调用to_date()进行转换。但真正使用参数,所以你不必担心atll的废话。 – OldProgrammer