If columnEncryptionSetting is enabled, mssql-jdbc driver calls sp_describe_parameter_encryption each time PreparedStatement is executed.
Below SQL profiler trace was generated when creating PreparedStatement and using it twice to execute.
Trace for mssql-jdbc:

Trace for SqlClient:

Calling the stored procedure just once and reusing the metadata will improve the drivers performance with Always Encrypted significantly.
If
columnEncryptionSettingis enabled, mssql-jdbc driver calls sp_describe_parameter_encryption each time PreparedStatement is executed.Below SQL profiler trace was generated when creating PreparedStatement and using it twice to execute.
Trace for mssql-jdbc:

Trace for SqlClient:

Calling the stored procedure just once and reusing the metadata will improve the drivers performance with Always Encrypted significantly.