NetBeans IDEでJDBC oracleデータベースを使用してJavaプロジェクトを実行しています。日付と時刻をデータベースに挿入する必要があります。フォーマットは2011/11/16 10:30。 以下に自分のコードを添付しました。 で日付と時刻をJavaに挿入する方法
が挿入コードDBConnector
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 + ""
+ ")";
ボタンのClickイベント
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、nullで、EX) ; }}キャッチ(例外例){} }
ここでの問題は、データベース内の日付列がVARCHAR
データ型であるので、どのようにこの2013年11月16日10時30分に挿入することができ、ありますこれを整理するのを手伝ってください。
編集:例外が
クエリを発生:: 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/2013分の16 10:30、NULL、1,0,01) java.sql.SQLSyntaxErrorException:ORA-00917: のoracle.jdbcで欠落コンマ
.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:91) ()oracle.jdbc.driver.DatabaseError.newSQLException oracle.jdbc.driver.T4CTTIoer.processErrorで oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:206) で(DatabaseError.java:133) (T4CTTIoer。 oracle.jdbc.driver.T4CStatementで oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1034で oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413))にて455):Javaの。 oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:942) oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1222)で オラクルの でdoOall8(T4CStatement.java:183)。 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ました。 : UI.CabCancellationUI $ 6.actionPerformed(CabCancellationUI.javaでUI.CabCancellationUI.access $ 500(CabCancellationUI.java:28)で UI.CabCancellationUI.btn_predictionActionPerformed(CabCancellationUI.java:365) で(DB_Connector.java:78)を挿入151)at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) at javax.swing.AbstractButton $ Handler.actionPerformed(AbstractButton.java:2348)(デフォルトボタンモデル。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)java.awt.Container.processEvent(Container.java:2236)at java.awt.Component.dispatchEventImpl(コンポーネント.java:4891)at にあるjava.awt.Container.dispatchEventImpl(Container.java:2294)で、 のjava.awt.Component.dispatchEvent(Component.java:4713)にjava.awt.LightweightDispatcher.retargetMouseEvent(Container.java: :4888) at java.awt.Lightw eightDispatcher.processMouseEvent(Container.java:4525) のjava.awt.Windowでjava.awt.Container.dispatchEventImpl(Container.java:2280)でjava.awt.LightweightDispatcher.dispatchEvent(Container.java:4466) で。 dispatchEventImpl(Window.java:2750)at java.awt.Component.dispatchEvent(Component.java:4713)at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)at java.awt.EventQueue.access $ 500 (EventQueue.java:97)at java.awt.EventQueue $ 3.run(EventQueue.java:709)at java.awt.EventQueue $ 3.run(EventQueue.java:703)at java.security.AccessController.doPrivileged (ネイティブメソッド)at java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java :76) java.awt.EventQueueの$ 4.runでjava.awt.EventQueueの$ 4.runで すべてjava.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) (EventQueue.java:731)(でjava.awt.EventQueue.dispatchEventで すべてjava.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) で java.security.AccessController.doPrivileged(ネイティブメソッド)でEventQueue.java:729)(EventQueue.java : JAでjava.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) でjava.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) における728) va.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) ATでjava.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) でjava.awt.EventDispatchThread.run(EventDispatchThread.java
コード実行時に発生した問題/例外 – guleryuz
例外を使用して質問を更新しました。 – temp
をチェックしてください。問題#1 - INSERT文へのすべての入力をパラメータ化してください。もしそれをしたくない場合は、日付/時刻リテラルを引用符で囲む必要があります(つまり、'11/16/2013 10:30 ')。リテラルを使いたい場合は、システム間で異なるデフォルトのOracleの日付形式に依存するため、to_date()を呼び出して変換する必要があります。代わりに本当にパラメータを使用するので、あなたはその恐れを気にする必要はありません。 – OldProgrammer