code: public static PreparedCallableQuery prepareCallableQuery(final Connection conn, final Try.Function<Connection, CallableStatement, SQLException> stmtCreator)
              throws SQLException {
          return new PreparedCallableQuery(stmtCreator.apply(conn));
      }
docs: Never write below code because it will definitely cause {@code Connection} leak:
  <pre>
  <code>
  JdbcUtil.prepareCallableQuery(dataSource.getConnection(), stmtCreator);
  </code>
  </pre>
  
  @param conn the specified {@code conn} won't be close after this query is executed.
  @param stmtCreator the created {@code CallableStatement} will be closed after any execution methods in {@code PreparedQuery/PreparedCallableQuery} is called.
  An execution method is a method which will trigger the backed {@code PreparedStatement/CallableStatement} to be executed, for example: get/query/queryForInt/Long/../findFirst/list/execute/....
  @return
  @throws SQLException
  @see {@link JdbcUtil#prepareCall(Connection, String, Object...)}