Ужасное форматирование. При использовании параметров вы указываете не '?' , а просто ? .
'?'
?
Измените строку:
PreparedStatement pstmt = conexion.prepareStatement("INSERT INTO general_news(id,title,link,author,description,date,content) VALUES ('?','?','?','?','?','?')");
на
PreparedStatement pstmt = conexion.prepareStatement("INSERT INTO general_news(id,title,link,author,description,date,content) VALUES (?,?,?,?,?,?)");
Вот почему он думает, что у вас 0 параметров, но вы указывали первый.
Также обратите внимание, что вы выполняете INSERT и, как таковой, НЕ ДОЛЖНЫ использовать executeQuery. Вместо этого используйте executeUpdate () .
INSERT