Lyetnel
Lyetnel

Reputation: 17

java.sql.SQLException:near"İşlem":Syntax error

I started to working on SQLite database for my table. And I'm getting this error when I'm trying to save informations to database with text lanes. I'm working with NetBeans.

private void Cmd_saveActionPerformed(java.awt.event.ActionEvent evt) {                                           
   try{
      String sql = "Insert into KYaziciProg (Yapılan İşlem ,Müşteri Adı ,Ürünün Cinsi ,Ürünün Miktarı ,Ürünün Fiyatı ,Ürünün Tutarı ,İşlem Tarihi ,Ödeme Vadesi ,Yapılan Ödeme ,Kalan Bakiye) values (?,?,?,?,?,?,?,?,?,?)";

      pst=conn.prepareStatement(sql);
      pst.setString(2, jTextField2.getText());
      pst.setString(3, jTextField1.getText());
      pst.setString(4, jTextField3.getText());
      pst.setString(5, jTextField4.getText());
      pst.setString(6, jTextField5.getText());
      pst.setString(7, jTextField6.getText());
      pst.setString(8, jTextField7.getText());
      pst.setString(9, jTextField8.getText());
      pst.setString(10, jTextField9.getText());
      pst.setString(11, jTextField10.getText());

      pst.execute();

      JOptionPane.showMessageDialog(null, "Kaydedildi!");

   }   
   catch(Exception e)
   {     
      JOptionPane.showMessageDialog(null, e);   
   }  
   Update_table();
}   

This is the codes where I'm trying to get this ones. I started from 2 in setString . Because I don't know but in SQLite I saw 1 more column which I didn't create before. See the image below colmuns

EDIT:

Same error on when clicked button. I saw these errors on the Run Panel; run:

java.sql.SQLException: near "İşlem": syntax error
    at org.sqlite.DB.throwex(DB.java:288)
    at org.sqlite.NativeDB.prepare(Native Method)
    at org.sqlite.DB.prepare(DB.java:114)
    at org.sqlite.PrepStmt.<init>(PrepStmt.java:37)
    at org.sqlite.Conn.prepareStatement(Conn.java:231)
    at org.sqlite.Conn.prepareStatement(Conn.java:224)
    at org.sqlite.Conn.prepareStatement(Conn.java:213)
    at populatethingy.Cmd_saveActionPerformed(populatethingy.java:253)
    at populatethingy.access$300(populatethingy.java:13)
    at populatethingy$4.actionPerformed(populatethingy.java:210)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    at java.awt.Component.processMouseEvent(Component.java:6289)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:6054)
    at java.awt.Container.processEvent(Container.java:2041)
    at java.awt.Component.dispatchEventImpl(Component.java:4652)
    at java.awt.Container.dispatchEventImpl(Container.java:2099)
    at java.awt.Component.dispatchEvent(Component.java:4482)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
    at java.awt.Container.dispatchEventImpl(Container.java:2085)
    at java.awt.Window.dispatchEventImpl(Window.java:2478)
    at java.awt.Component.dispatchEvent(Component.java:4482)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
    at java.awt.EventQueue.access$000(EventQueue.java:85)
    at java.awt.EventQueue$1.run(EventQueue.java:603)
    at java.awt.EventQueue$1.run(EventQueue.java:601)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
    at java.awt.EventQueue$2.run(EventQueue.java:617)
    at java.awt.EventQueue$2.run(EventQueue.java:615)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
BUILD SUCCESSFUL (total time: 3 seconds)

Upvotes: 0

Views: 365

Answers (2)

Mark Rotteveel
Mark Rotteveel

Reputation: 108960

Your columns have spaces in them, you need to quote them, so:

Insert into KYaziciProg ("Yapılan İşlem" ,"Müşteri Adı" , ...

Upvotes: 1

Java Devil
Java Devil

Reputation: 10959

You need to start from 1. The Column ROWID is autogenerated by Sqlite.

But that wouldn't matter anyway as if you look at your insert statement, you do not specify that column so you are not inserting into into that column.

The parameter index corresponds to the ? characters in your insert statement so you are getting that error because the way your code is now you would be trying to execute the statement (Note that "Value from jTextFeildX is just my puesdo string for what ever the value is.

Insert into KYaziciProg (Yapılan İşlem ,Müşteri Adı ,Ürünün Cinsi ,Ürünün Miktarı ,Ürünün Fiyatı ,Ürünün Tutarı ,İşlem Tarihi ,Ödeme Vadesi ,Yapılan Ödeme ,Kalan Bakiye) values (?,value from jTextFeildX,value from jTextFeildX,value from jTextFeildX,value from jTextFeildX,value from jTextFeildX,value from jTextFeildX,value from jTextFeildX,value from jTextFeildX,value from jTextFeildX)";

Notice that there is a ? still in the query.. meaning invalid SQL

You want your code to be

  pst.setString(1, jTextField2.getText());
  pst.setString(2, jTextField1.getText());
  pst.setString(3, jTextField3.getText());
  pst.setString(4, jTextField4.getText());
  pst.setString(5, jTextField5.getText());
  pst.setString(6, jTextField6.getText());
  pst.setString(7, jTextField7.getText());
  pst.setString(8, jTextField8.getText());
  pst.setString(9, jTextField9.getText());
  pst.setString(10, jTextField10.getText());

EDIT Add this code and the go to your netbeans ouput console and post to your question the resulting lines.

catch(Exception e)
{  
  e.printStackTrace();    // Add this line 
  JOptionPane.showMessageDialog(null, e);   
}

Upvotes: 0

Related Questions