В обычных файлах Java вы используете JDBC для взаимодействия с базой данных. Каждый раз, когда вы выполняете DML (выберите, вставьте, удалите, ...), предложение должно быть оптимизировано, проанализировано для создания плана доступа, а затем выполнить действие. Когда вам приходится делать это много раз, выполнение одного и того же процесса каждый раз может быть дорогостоящим.
Вместо этого SQLJ представляет собой комбинацию между Java и SQL. Вы пишете свои предложения так же, как и в средстве просмотра базы данных, и во время предварительной компиляции предложения будут проанализированы. Это означает, что предложения будут статичными, а пакет в базе данных будет создан и будет содержать план доступа. Это также означает, что запрос анализируется только один раз, время компиляции и многократное выполнение.
JDBC - это больше для динамических запросов, таких как select, которые создаются с учетом набора параметров, и каждый раз они разные. SQLJ для статических запросов, имеет ту же структуру.
Разработка в SQLJ очень проста, и, наконец, во время предварительной компиляции процессор извлечет предложения SQL, создаст файл профиля для привязки в базе данных, а также создаст набор файлов Java, который будет содержать JDBC "оптимизировано"
Вы можете смешивать SQLJ и JDBC в файле, используя лучшее из каждого мира. Например, объявление выбора для обновления, а затем повторение и изменение строки очень лаконично в SQLJ.
Это правда, что SQLJ не очень популярен, но это проблема, когда разработчики думают только в своей программе, не анализируя, как получить доступ к данным, разработчики только пишут код, а когда программы выпускаются в производство, проблемы с производительностью всегда одинаковы. SQLJ обеспечивает более гибкий доступ к данным, что администратор базы данных высоко ценит.