com.j256.ormlite.dao
Class DaoManager

java.lang.Object
  extended by com.j256.ormlite.dao.DaoManager

public class DaoManager
extends Object

Class which caches created DAOs. Sometimes internal DAOs are used to support such features as auto-refreshing of foreign fields or collections of sub-objects. Since instantiation of the DAO is a bit expensive, this class is used in an attempt to only create a DAO once for each class.

NOTE: To use this cache, you should make sure you've added a DatabaseTable.daoClass() value to the annotation to the top of your class.

Author:
graywatson

Constructor Summary
DaoManager()
           
 
Method Summary
static void addCachedDatabaseConfigs(Collection<DatabaseTableConfig<?>> configs)
          This adds database table configurations to the internal cache which can be used to speed up DAO construction.
static void clearCache()
          Clear out the cache.
static
<D extends Dao<T,?>,T>
D
createDao(ConnectionSource connectionSource, Class<T> clazz)
          Helper method to create a Dao object without having to define a class.
static
<D extends Dao<T,?>,T>
D
createDao(ConnectionSource connectionSource, DatabaseTableConfig<T> tableConfig)
          Helper method to create a Dao object without having to define a class.
static
<D extends Dao<T,?>,T>
D
lookupDao(ConnectionSource connectionSource, Class<T> clazz)
          Helper method to lookup a Dao if it has already been associated with the class.
static
<D extends Dao<T,?>,T>
D
lookupDao(ConnectionSource connectionSource, DatabaseTableConfig<T> tableConfig)
          Helper method to lookup a Dao if it has already been associated with the table-config.
static void registerDao(ConnectionSource connectionSource, Dao<?,?> dao)
          Register the dao with the cache inside of this class.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DaoManager

public DaoManager()
Method Detail

createDao

public static <D extends Dao<T,?>,T> D createDao(ConnectionSource connectionSource,
                                                 Class<T> clazz)
                                    throws SQLException
Helper method to create a Dao object without having to define a class. This checks to see if the Dao has already been created. If not then it is a call through to BaseDaoImpl.createDao(ConnectionSource, Class).

Throws:
SQLException

lookupDao

public static <D extends Dao<T,?>,T> D lookupDao(ConnectionSource connectionSource,
                                                 Class<T> clazz)
Helper method to lookup a Dao if it has already been associated with the class. Otherwise this returns null.


createDao

public static <D extends Dao<T,?>,T> D createDao(ConnectionSource connectionSource,
                                                 DatabaseTableConfig<T> tableConfig)
                                    throws SQLException
Helper method to create a Dao object without having to define a class. This checks to see if the Dao has already been created. If not then it is a call through to BaseDaoImpl.createDao(ConnectionSource, DatabaseTableConfig).

Throws:
SQLException

lookupDao

public static <D extends Dao<T,?>,T> D lookupDao(ConnectionSource connectionSource,
                                                 DatabaseTableConfig<T> tableConfig)
Helper method to lookup a Dao if it has already been associated with the table-config. Otherwise this returns null.


registerDao

public static void registerDao(ConnectionSource connectionSource,
                               Dao<?,?> dao)
Register the dao with the cache inside of this class. This will allow folks to build a DAO externally and then register so it can be used internally as necessary.

NOTE: It is better to use the DatabaseTable.daoClass() and have the DaoManager construct the DAO if possible.


clearCache

public static void clearCache()
Clear out the cache.


addCachedDatabaseConfigs

public static void addCachedDatabaseConfigs(Collection<DatabaseTableConfig<?>> configs)
This adds database table configurations to the internal cache which can be used to speed up DAO construction. This is especially true of Android and other mobile platforms.



This content is licensed by Gray Watson under the Creative Commons Attribution-Share Alike 3.0 License.