The 'anti-pattern' that I see with this approach is overuse of dynamic SQL and too little use of PreparedStatement.
I'm not saying that the anti-pattern is actually present. But since you say that you are storing only portions of the SQL statements in the database, my assumption is that you end up doing somthing like this:
Most modern databases will cache the compiled version of a query. Then if another query comes which is *exactly* the same, the second query does not have to be recompiled. The *exactly* part is sensitive to all the spaces and letters in the
string of the query, but does not include the parameters. So
is better than
You get benefit from this practice even if your application uses the PreparedStatement only once, then discards the PreparedStatement after it executes the query. The benefit comes if a second user uses the same query but with different parameters, or even if another part of your application executes the same query with different parameters. That happens because the database can hold the compiled version of the query, and even its query plan and partial results, in cache.