Лучше всего использовать именно PreparedStatement, если не используете какой нибудь ORM.
1) Это безопасно, так как исключает позможность SQL-injection
2) Это типо-безопасно - java-way.
3) Это быстро, в некоторых типах jdbc-драйверов они компилируются в хранимые процедуры на стороне базы (например в sybase/mssql и oracle) или в псевдокод на стороне java, а также они кешируются.
Пользуйте везде, где можно именно PreparedStatement -
javarevisited.blogspot.ru/2012/08/top-10-jdbc-best...
и
javarevisited.blogspot.ru/2012/03/why-use-prepared...