title: Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax
body: <p>I am trying to execute the above query through java but I get the following error in line 6:</p>
  
  <pre><code>Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? AND lexicon_lemma = ?)' at line 1
  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
  at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
  at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
  at com.mysql.jdbc.Util.handleNewInstance(Util.java:377)
  at com.mysql.jdbc.Util.getInstance(Util.java:360)
  at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:978)
  at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3887)
  at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3823)
  at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2435)
  at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2582)
  at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2526)
  at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2484)
  at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1446)
  </code></pre>
  
  <p>I can't find what is the problem with the syntax... Any suggestion?
  This is my query:</p>
  
  <pre><code>public static void InsertEntry(String lexiconType, String lemma, String lang) throws SQLException {
      String selectSQL = "SELECT id FROM lexicons WHERE (lexicon_type = ? AND lexicon_lemma = ?)";
      PreparedStatement preparedStatement = connection.prepareStatement(selectSQL);
      preparedStatement.setString(1, lexiconType);
      preparedStatement.setString(2, lemma);
      ResultSet rs = preparedStatement.executeQuery(selectSQL);
      int id = -1;
      if (rs.next()) {
          id = rs.getInt(1);
          System.out.println(id);
      } else {
          String insertSQL = "INSERT INTO lexicons "
      + "(lexicon_type,lexicon_lemma,lexicon_lang) VALUES"
      + "(?,?,?)";
          PreparedStatement prepStatement = connection.prepareStatement(insertSQL);
          prepStatement.setString(1, lexiconType);
          prepStatement.setString(2, lemma);
          prepStatement.setString(3, lang);
          prepStatement .executeUpdate();
          prepStatement.close();
      }
  }
  </code></pre>