Class MessageFormatTemplateEngine

java.lang.Object
org.jdbi.v3.core.statement.MessageFormatTemplateEngine
All Implemented Interfaces:
TemplateEngine

@Deprecated public class MessageFormatTemplateEngine extends Object implements TemplateEngine
Deprecated.
MessageFormat formats integers with decimal separators, e.g. 1000 → "1,000". This hindsight realization has led us to discourage its use.
Uses the equivalent of MessageFormat.format(String, Object...) as a template engine. You must use "0", "1", "2", etc as keys: start at 0, increment by 1. Keys must be numerically unique. You must Configurable.define(String, Object) as many key/value pairs as there are placeholders in the pattern string. You may define key/value pairs in any order. Keys may contain leading '0's. Any invalid use will trigger an IllegalArgumentException (or subclasses such as NumberFormatException) when render(String, StatementContext) is called – typically when the statement is about to be executed. Example usage:

     // select bar from foo where col = 'abc'
     jdbi.useHandle(handle -> handle.createCall("select {1} from {0} where col = ''{2}''")
         .setTemplateEngine(MessageFormatTemplateEngine.INSTANCE)
         .define("0", "foo")
         .define("1", "bar")
         .define("2", "abc")
         .invoke());
 
  • Constructor Details

    • MessageFormatTemplateEngine

      public MessageFormatTemplateEngine()
      Deprecated.
  • Method Details

    • render

      public String render(String template, StatementContext ctx)
      Deprecated.
      Description copied from interface: TemplateEngine
      Renders an SQL statement from the given template, using the statement context as needed.
      Specified by:
      render in interface TemplateEngine
      Parameters:
      template - The SQL to rewrite
      ctx - The statement context for the statement being executed
      Returns:
      something which can provide the actual SQL to prepare a statement from and which can bind the correct arguments to that prepared statement