anchor.diff:  ----
   
   [NOTE]
  -The default parsers do not readily recognize non-Latin characters as identifiers;
  -they must be surrounded by double quotes.
  +The default parsers recognize any Java identifier as a parameter or attribute name.
  +Even some strange cases like emoji are allowed, although the Jdbi authors encourage appropriate discretion 🧐.
   
   [NOTE]
   The default parsers try to ignore parameter-like constructions inside of string literals,
  
positive.code: 
  [source,java]
  ----
  handle.createQuery("select * from emotion where emoticon = <sticker>;")
      .define("sticker", ":-)") // -> "... where emoticon = :-);"
      .mapToMap()
      // exception: no binding/argument named "-)" present
      .list();
  
negative.code: Typical uses for templating are optional or repeating segments (conditions and loops), complex variables such as comma-separated lists for IN clauses, and variable substitution for non-bindable SQL elements (like table names). Unlike _argument binding_, the _rendering_ of _attributes_ performed by TemplateEngines is *not* SQL-aware. Since they perform generic String manipulations, TemplateEngines can easily produce horribly mangled or subtly defective queries if you don't use them carefully.
  
  [CAUTION]
  link:https://www.xkcd.com/327/[Query templating is a common attack vector!^]  Always prefer binding parameters to static SQL over dynamic SQL when possible.
  
  [source,java]
  ----
  handle.createQuery("select * from <TABLE> where name = :n")
  
      // -> "select * from Person where name = :n"
      .define("TABLE", "Person")
  
      // -> "select * from Person where name = 'MyName'"
      .bind("n", "MyName");
  ----
  
  