|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.j256.ormlite.support.SimpleDaoSupport
com.j256.ormlite.dao.BaseJdbcDao<T,ID>
public abstract class BaseJdbcDao<T,ID>
Base class for the Database Access Objects that handle the reading and writing a class from the database. This is the
JDBC implementation of the Dao and extends Spring's SimpleDaoSupport. Kudos to Robert A. for the
general ideas of this hierarchy.
This class is also Iterable which means you can do a for (T obj : dao) type of loop code to iterate
through the table of persisted objects. See iterator().
NOTE: If you are using the Spring type wiring in Java, initialize() should be called after all of the
set methods. In Spring XML, init-method="initialize" should be used.
| Field Summary |
|---|
| Fields inherited from class com.j256.ormlite.support.SimpleDaoSupport |
|---|
databaseAccess, databaseType |
| Constructor Summary | |
|---|---|
protected |
BaseJdbcDao(Class<T> dataClass)
Construct our base Jdbc class. |
protected |
BaseJdbcDao(DatabaseTableConfig<T> tableConfig)
Construct our base Jdbc class. |
protected |
BaseJdbcDao(DatabaseType databaseType,
Class<T> dataClass)
Construct our base Jdbc class. |
protected |
BaseJdbcDao(DatabaseType databaseType,
DatabaseTableConfig<T> tableConfig)
Construct our base Jdbc class. |
| Method Summary | ||
|---|---|---|
int |
create(T data)
Create a new row in the database from an object. |
|
static
|
createDao(DatabaseType databaseType,
DataSource dataSource,
Class<T> clazz)
Helper method to create a Dao object without having to define a class. |
|
int |
delete(Collection<T> datas)
Delete a collection of objects from the database using an IN SQL clause. |
|
int |
delete(T data)
Delete an object from the database. |
|
int |
deleteIds(Collection<ID> ids)
Delete the objects that match the collection of ids from the database using an IN SQL clause. |
|
Class<T> |
getDataClass()
Returns the class associated with this DAO. |
|
DatabaseTableConfig<T> |
getTableConfig()
Returns the table configuration information associated with the Dao's class. |
|
void |
initialize()
Initialize the various DAO configurations. |
|
SelectIterator<T,ID> |
iterator()
This satisfies the Iterable interface for the class and allows you to iterate through the objects in the
table using SQL. |
|
SelectIterator<T,ID> |
iterator(PreparedQuery<T> preparedQuery)
Same as Dao.iterator() but with a PreparedQuery parameter. |
|
RawResults |
iteratorRaw(String query)
Same as Dao.iterator(PreparedQuery) except it returns a RawResults object associated with the SQL select
query argument. |
|
boolean |
objectsEqual(T data1,
T data2)
Return true if the two arguments are equal. |
|
String |
objectToString(T data)
Return the string version of the object with each of the known field values shown. |
|
List<T> |
query(PreparedQuery<T> preparedQuery)
Query for the items in the object table which match the PreparedQuery. |
|
QueryBuilder<T,ID> |
queryBuilder()
Create and return a new QueryBuilder object which allows you to build a custom query. |
|
List<T> |
queryForAll()
Query for all of the items in the object table. |
|
RawResults |
queryForAllRaw(String queryString)
Query for all of the items in the object table that match the SQL select query argument. |
|
T |
queryForFirst(PreparedQuery<T> preparedQuery)
Query for and return the first item in the object table which matches the PreparedQuery. |
|
T |
queryForId(ID id)
Retrieves an object associated with a specific ID. |
|
int |
refresh(T data)
Does a query for the object's id and copies in each of the field values from the database to refresh the data parameter. |
|
void |
setTableConfig(DatabaseTableConfig<T> tableConfig)
Used if you want to configure the class for the Dao by hand or with spring instead of using the DatabaseField annotation in the class. |
|
int |
update(T data)
Save the fields from an object to the database. |
|
int |
updateId(T data,
ID newId)
Update an object in the database to change its id to the newId parameter. |
|
| Methods inherited from class com.j256.ormlite.support.SimpleDaoSupport |
|---|
setDatabaseType, setDataSource |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
protected BaseJdbcDao(Class<T> dataClass)
DatabaseType must be set with the SimpleDaoSupport.setDatabaseType(com.j256.ormlite.db.DatabaseType) method
before initialize() method is called. The dataClass provided must have its fields marked with
DatabaseField annotations or the setTableConfig(com.j256.ormlite.table.DatabaseTableConfig) method must be called before the
initialize() method is called.
dataClass - Class associated with this Dao. This must match the T class parameter.
protected BaseJdbcDao(DatabaseType databaseType,
Class<T> dataClass)
DatabaseField
annotations or the setTableConfig(com.j256.ormlite.table.DatabaseTableConfig) method must be called before the initialize() method is
called.
databaseType - Type of database.dataClass - Class associated with this Dao. This must match the T class parameter.protected BaseJdbcDao(DatabaseTableConfig<T> tableConfig)
DatabaseType must be set with the SimpleDaoSupport.setDatabaseType(com.j256.ormlite.db.DatabaseType) method
before initialize() method is called.
tableConfig - Hand or spring wired table configuration information.
protected BaseJdbcDao(DatabaseType databaseType,
DatabaseTableConfig<T> tableConfig)
databaseType - Type of database.tableConfig - Hand or spring wired table configuration information.| Method Detail |
|---|
public void initialize()
throws SQLException
initialize() which must be called
after the Dao is configured (done by Spring automagically). This method should not be called directly by the
Ormlite user.
initialize in class SimpleDaoSupportSQLException
public T queryForId(ID id)
throws SQLException
Dao
queryForId in interface Dao<T,ID>id - Identifier that matches a specific row in the database to find and return.
SQLException - on any SQL problems or if more than 1 item with the id are found in the database.
public T queryForFirst(PreparedQuery<T> preparedQuery)
throws SQLException
DaoPreparedQuery. See
Dao.queryBuilder() for more information. This can be used to return the object that matches a single unique
column. You should use Dao.queryForId(ID) if you want to query for the id column.
queryForFirst in interface Dao<T,ID>preparedQuery - Query used to match the objects in the database.
SQLException - on any SQL problems.
public List<T> queryForAll()
throws SQLException
DaoDao.iterator() method instead.
queryForAll in interface Dao<T,ID>SQLException - on any SQL problems.public QueryBuilder<T,ID> queryBuilder()
DaoQueryBuilder object which allows you to build a custom query. You call methods on
the QueryBuilder to construct your custom query and then call QueryBuilder.prepareQuery() once you
are ready to build your query. This returns a PreparedQuery object which gets passed to
Dao.query(PreparedQuery) or Dao.iterator(PreparedQuery).
queryBuilder in interface Dao<T,ID>
public List<T> query(PreparedQuery<T> preparedQuery)
throws SQLException
DaoPreparedQuery. See Dao.queryBuilder() for more
information.
NOTE: For medium sized or large tables, this may load a lot of objects into memory so you should consider
using the Dao.iterator(PreparedQuery) method instead.
query in interface Dao<T,ID>preparedQuery - Query used to match the objects in the database.
SQLException - on any SQL problems.
public RawResults queryForAllRaw(String queryString)
throws SQLException
DaoQueryBuilder for most queries, this method allows you to do special queries that aren't supported
otherwise. For medium sized or large tables, this may load a lot of objects into memory so you should consider
using the Dao.iteratorRaw(String) method instead.
queryForAllRaw in interface Dao<T,ID>SQLException - on any SQL problems.
public int create(T data)
throws SQLException
Dao
create in interface Dao<T,ID>data - The data item that we are creating in the database.
SQLException
public int update(T data)
throws SQLException
DaoDao.updateId(T, ID).
update in interface Dao<T,ID>data - The data item that we are updating in the database.
SQLException - on any SQL problems.
public int updateId(T data,
ID newId)
throws SQLException
DaoNOTE: Depending on the database type and the id type, you may be unable to change the id of the field.
updateId in interface Dao<T,ID>data - The data item that we are updating in the database with the current id.newId - The new id that you want to update the data with.
SQLException - on any SQL problems.
public int refresh(T data)
throws SQLException
Dao
refresh in interface Dao<T,ID>data - The data item that we are refreshing with fields from the database.
SQLException - on any SQL problems or if the data item is not found in the table or if more than 1 item is found
with data's id.
public int delete(T data)
throws SQLException
Dao
delete in interface Dao<T,ID>data - The data item that we are deleting from the database.
SQLException - on any SQL problems.
public int delete(Collection<T> datas)
throws SQLException
Dao
delete in interface Dao<T,ID>datas - A collection of data items to be deleted.
SQLException - on any SQL problems.
public int deleteIds(Collection<ID> ids)
throws SQLException
Dao
deleteIds in interface Dao<T,ID>ids - A collection of data ids to be deleted.
SQLException - on any SQL problems.public SelectIterator<T,ID> iterator()
DaoIterable interface for the class and allows you to iterate through the objects in the
table using SQL. You can use code similar to the following:
for (Account account : accountDao) { ... }
WARNING: because the Iterator.hasNext(), Iterator.next(), etc. methods can only throw
RuntimeException, the code has to wrap any SQLException with IllegalStateException. Make
sure to catch IllegalStateException and look for a SQLException cause. See the
SelectIterator source code for more details.
WARNING: The underlying results object will only be closed if you page all the way to the end of the
iterator using the for() loop or if you call SelectIterator.close() directly. It is also closed when it
is garbage collected but this is considered bad form.
iterator in interface CloseableIterable<T>iterator in interface Dao<T,ID>iterator in interface Iterable<T>
public SelectIterator<T,ID> iterator(PreparedQuery<T> preparedQuery)
throws SQLException
DaoDao.iterator() but with a PreparedQuery parameter. See Dao.queryBuilder() for more
information. You use it like the following:
QueryBuilder<Account, String> qb = accountDao.queryBuilder();
... custom query builder methods
SelectIterator<Account> iterator = partialDao.iterator(qb.prepareQuery());
try {
while (iterator.hasNext()) {
Account account = iterator.next();
...
}
} finish {
iterator.close();
}
iterator in interface Dao<T,ID>preparedQuery - Query used to iterate across a sub-set of the items in the database.
SQLException - on any SQL problems.
public RawResults iteratorRaw(String query)
throws SQLException
DaoDao.iterator(PreparedQuery) except it returns a RawResults object associated with the SQL select
query argument. Although you should use the Dao.iterator() for most queries, this method allows you to do
special queries that aren't supported otherwise. Like the above iterator methods, you must call close on the
returned RawResults object once you are done with it.
iteratorRaw in interface Dao<T,ID>SQLExceptionpublic String objectToString(T data)
Dao
objectToString in interface Dao<T,ID>data - The data item for which we are returning the toString information.
public boolean objectsEqual(T data1,
T data2)
throws SQLException
Dao
objectsEqual in interface Dao<T,ID>data1 - One of the data items that we are checking for equality.data2 - The other data item that we are checking for equality.
SQLExceptionpublic Class<T> getDataClass()
public DatabaseTableConfig<T> getTableConfig()
public void setTableConfig(DatabaseTableConfig<T> tableConfig)
DatabaseField annotation in the class. This must be called before initialize().
public static <T,ID> Dao<T,ID> createDao(DatabaseType databaseType,
DataSource dataSource,
Class<T> clazz)
throws SQLException
SQLException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||