Difference Between Statement And PreparedStatement In Java

Statement

  • This JDBC API interface is used for static SQL statements at run time.
  • There is no specific protocol in statement interface.
  • The statement interface does not allow accepting parameters at runtime.
  • This interface is used when the SQL query is required to be executed only once.
  • The performance of the statement interface is comparatively not up to the mark.
  • The Statement interface enforces SQL injection.
  • The Statement interface does not extend the PreparedStatement interface.
  • There could be a possibility of writing concatenated SQL statements while using the Statement interface.
  • The SQL queries that are executed using Statement interface are executed at runtime and therefore, it is a little slower performance wise.
  • The statement interface cannot be used for retrieving or storing image and files in the databases.
  • This interface does not offer using setaArray method in Java.
  • The statement interface is beneficial when using Data Definition Language (DDL) commands.
  • The commands that are mostly used in this interface are create, drop, truncate and alter.

PreparedStatement

  • The PreparedStatement interface is used for dynamic SQL statements at run time.
  • The PreparedStatement used the non-SQL binary protocol.
  • The PreparedStatement interface allow accepting parameters at runtime.
  • This interface is used when the SQL query is required to be executed multiple times.
  • The performance of the PreparedStatement interface is better than Statement.
  • The PreparedStatement does not enforce SQL injection.
  • The PreparedStatement interface extends the Statement Interface.
  • There’s no need of writing concatenated SQL statements when using the PreparedStatement interface.
  • The SQL queries executed queries using PreparedStatement are pre-compiled and therefore, it offers a better performance.
  • The PreparedStatement interface can be used for retrieving or storing image and files in databases.
  • This interface offers using setArray method in Java.
  • The PreparedStatement interface is beneficial when using Data Manipulation Language (DML) commands.
  • The commands that are mostly used in this interface are select, delete, update and insert.

Difference Between Statement And PreparedStatement In Tabular Form

BASIS OF COMPARISON   STATEMENT PREPAREDSTATEMENT
Description This JDBC API interface is used for static SQL statements at run time.   The PreparedStatement interface is used for dynamic SQL statements at run time.  
Protocol There is no specific protocol in statement interface.   The PreparedStatement used the non-SQL binary protocol.  
Accepting Parameters The statement interface does not allow accepting parameters at runtime.   The PreparedStatement interface allow accepting parameters at runtime.  
Use This interface is used when the SQL query is required to be executed only once.   This interface is used when the SQL query is required to be executed multiple times.  
Performance The performance of the statement interface is comparatively not up to the mark.   The performance of the PreparedStatement interface is better than Statement.  
SQL Injection The Statement interface enforces SQL injection.   The PreparedStatement does not enforce SQL injection.  
Function The Statement interface does not extend the PreparedStatement interface.   The PreparedStatement interface extends the Statement Interface.  
Writing Concatenated SQL There could be a possibility of writing concatenated SQL statements while using the Statement interface.   There’s no need of writing concatenated SQL statements when using the PreparedStatement interface.  
Execution The SQL queries that are executed using Statement interface are executed at runtime and therefore, it is a little slower performance wise.   The SQL queries executed queries using PreparedStatement are pre-compiled and therefore, it offers a better performance.  
Data Retrieval The statement interface cannot be used for retrieving or storing image and files in the databases.   The statement interface cannot be used for retrieving or storing image and files in the databases.  
Offer Method This interface does not offer using setArray method in Java.   This interface offers using setArray method in Java.  
Commands The commands that are mostly used in this interface are create, drop, truncate and alter.   The commands that are mostly used in this interface are select, delete, update and insert.  
Application The statement interface is beneficial when using Data Definition Language (DDL) commands.   The PreparedStatement interface is beneficial when using Data Manipulation Language (DML) commands.