1.6. The sqlj Command-Line Utility

Now that you've seen how to translate and run the HelloWorld.sqlj program, I will go into the details of what the sqlj command-line utility does behind the scenes. The sqlj command-line utility parses the parameters that you pass to it, and then runs a Java Virtual Machine (JVM) to handle the translation of your SQLJ file to a Java file and the subsequent compilation of that Java file to a class file. The sqlj command-line utility has many options, which are documented in Appendix B.

The first thing the JVM does when you invoke sqlj is run the translator. The translator performs the following two checks on the SQLJ statements contained in the source file:

  • Syntax checking

  • Semantic checking

The syntax check examines the SQLJ statements to verify that they are formatted in accordance with the SQLJ standard. The semantic check examines the database tables and columns referenced in the statements to verify that they actually exist in the database. The semantic check is performed only if you use the -user command-line option of sqlj; see Appendix B for details.

Assuming that the source file passes the two checks, the translator then converts the embedded SQLJ statements into SQLJ runtime library method calls. The runtime methods then use JDBC to perform the actual database operations. A profile is also generated for each database connection made by the program; a profile is a small binary file that contains information, such as the tables referenced, ...

Get Java Programming with Oracle SQLJ now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.