What is the difference between PreparedStatement and Statement in java?