So, is there a reason we still have a Statement in the JDBC API?
Yes, because it is in the SQL client-server API. If unprepared statements must be removed, then the JDBC function will be absent.
As pointed out in other answers, PreparedStatement has no advantages if there are no dynamic parameters. In these cases, the use of an unprepared operator is somewhat more concise.
The completely unanswered question is that PreparedStatement is the Suberinterface of the Statement statement, and therefore the latter cannot be deleted without redefining the API. This is more related to the Java API, although not related to SQL.
source share