Package org.apache.commons.dbutils

## Class QueryLoader

- java.lang.Object
- - org.apache.commons.dbutils.QueryLoader

-     public class QueryLoader
      extends Object

  `QueryLoader` is a registry for sets of queries so that multiple copies of the same queries aren't loaded into memory. This implementation loads properties files filled with query name to SQL mappings. This class is thread safe.

- - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `QueryLoader()` | QueryLoader constructor.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static QueryLoader` | `instance()` | Return an INSTANCE of this class.
    `Map<String,​String>` | `load​(String path)` | Loads a Map of query names to SQL values.
    `protected Map<String,​String>` | `loadQueries​(String path)` | Loads a set of named queries into a Map object.
    `void` | `unload​(String path)` | Removes the queries for the given path from the cache.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### QueryLoader

          protected QueryLoader()

      QueryLoader constructor.

  - ### Method Detail

    - #### instance

          public static QueryLoader instance()

      Return an INSTANCE of this class.
      Returns:
        The Singleton INSTANCE.

    - #### load

          public Map<String,​String> load​(String path)
                                        throws IOException

      Loads a Map of query names to SQL values. The Maps are cached so a subsequent request to load queries from the same path will return the cached Map. The properties file to load can be in either line-oriented or XML format. XML formatted properties files must use a `.xml` file extension.
      Parameters:
        `path` - The path that the ClassLoader will use to find the file. This is not a file system path. If you had a jarred Queries.properties file in the com.yourcorp.app.jdbc package you would pass "/com/yourcorp/app/jdbc/Queries.properties" to this method.
      Returns:
        Map of query names to SQL values
      Throws:
        `IOException` - if a file access error occurs
        `IllegalArgumentException` - if the ClassLoader can't find a file at the given path.
        `InvalidPropertiesFormatException` - if the XML properties file is invalid
      See Also:
        `Properties`

    - #### loadQueries

          protected Map<String,​String> loadQueries​(String path)
                                                  throws IOException

      Loads a set of named queries into a Map object. This implementation reads a properties file at the given path. The properties file can be in either line-oriented or XML format. XML formatted properties files must use a `.xml` file extension.
      Parameters:
        `path` - The path that the ClassLoader will use to find the file.
      Returns:
        Map of query names to SQL values
      Throws:
        `IOException` - if a file access error occurs
        `IllegalArgumentException` - if the ClassLoader can't find a file at the given path.
        `InvalidPropertiesFormatException` - if the XML properties file is invalid
      Since:
        1.1
      See Also:
        `Properties`

    - #### unload

          public void unload​(String path)

      Removes the queries for the given path from the cache.
      Parameters:
        `path` - The path that the queries were loaded from.