How do you make long SQL be called from another readable code?

This is a very open question, but I think it can be very useful for reading SQL.

So, you have a Java program, and you are trying to invoke a monster SQL query from it, with many subqueries and joins. The starting point for my question is a string constant like this:

static string MONSTER_STATEMENT = 
  "SELECT  " +
  "   fields" +
  "WHERE "+
  "   fieldA = (SELECT a FROM TableC) " +
  "AND fieldB IN (%s)" +
  "AND fieldC = %d " +
  "FROM "
  "   tableA INNER JOIN tableB ON ...";

Then it is populated using String.format and executed.

What are you doing to make this material readable? Do you share your inner connections. Are you inserting SQL itself inside a string? Where do you put comments? Please share all the tricks in your arsenal.

+5
source share
3 answers

, SQL , , , Management Studio. , SQL, , . , , SQL, , - SQL Profiler. , StringBuilder SQL :

StringBuilder sql = new StringBuilder();
sql.append("Select ....");
sql.append("\t\n, AdditionalCol, ...");
sql.append("\nFrom ...");
sql.append("\n  Inner Join ...");
sql.append("\n      On ColA =  ...");
sql.append("\nWhere Col1 = (");
sql.append("\n          Select a");
sql.append("\n          From TableC");
sql.append("\n          ");
sql.append("\n  And ColB In(%s)");
sql.append("\n  And ColC = %d");
+1

SQL , String.format, SQL-.

: /xml. Java SQL.

IDEA , Java, ( , ), .

: , , . - , , , ( ), - , (String.format - ) , ( , ), , .

, , , configuration/xml - , .

0

All Articles