javaで作成されたフォームを使用してデータベースにエントリを挿入しようとしています。データベースから問題なく選択できますが、挿入するのが難しいです。この問題は、整数を正しく変換していないこと、あるいはSQLが整数をNumberフィールドに取り込まないことが原因であると私は信じています。私はわかりません。私は "AWT-EventQueue-0"エラーを受け取りますが、どこに指定していません。ここでフィールドの型が数値のSQLデータベースに挿入するためにStringをintに適切に変換する際に問題が発生しました
は私の入力テキストを変換するための私のコードの抜粋です:
public void addItem() throws ClassNotFoundException, SQLException{
Item i1;
DataAccess DA = new DataAccess();
this.txtOutput.setText(DA.testResult);
i1 = new Item();
i1.setItemId(Integer.parseInt(this.txtItemId.getText()));
i1.setCategoryId(Integer.parseInt(this.txtCategoryId.getText()));
i1.setItemName(this.txtItemName.getText());
i1.setItemDesc(this.txtItemDesc.getText());
i1.setUnitPrice(Integer.parseInt(this.txtUnitPrice.getText()));
i1.setUnitStock(Integer.parseInt(this.txtUnitStock.getText()));
try {
i1.saveItem();
} catch (ClassNotFoundException | SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
this.txtItemId.setText("");
this.txtCategoryId.setText("");
this.txtItemName.setText("");
this.txtItemDesc.setText("");
this.txtUnitPrice.setText("");
this.txtUnitStock.setText("");
}
また、ここで私はその後、私のデータベースにそのデータを挿入するために使用していたコードは次のとおりです。
public int saveItem() throws ClassNotFoundException, SQLException{
int rowsAffected=0;
String strSQL = "INSERT INTO item VALUES (sc_item_item_id_seq.NEXTVAL," + this.getCategoryId() + ",'" + this.getItemName() + "','" + this.getItemDesc() + "'," + this.getUnitPrice() + "," + this.getUnitStock() + ")";
DataAccess DA = new DataAccess();
rowsAffected = DA.modifyDatabase(strSQL);
return rowsAffected;
}
のように私は、Number型のデータベースのフィールドに整数を入力しようとしています。これは実現可能か、間違っていますか?
また、別のテーブルで問題なく動作していますが、そのテーブルは文字列を取り入れているだけです。
ご協力いただければ幸いです。
ありがとうございます!
編集:ここでは
はエラーです:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at javagui.views.frmItem.addItem(frmItem.java:243)
at javagui.views.frmItem$1.actionPerformed(frmItem.java:101)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
例外がスローされた場合は、そのスタックトレースを表示します。また、準備された文を使用してください。http://docs.oracle.com/javase/tutorial/jdbc/basics/preparedhtml –
ItemNameまたはitemDescフィールドに引用符などの不適切な文字が含まれていますか? –