org.openstreetmap.osmosis.pgsimple.common.BaseDao Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of osmosis-pgsimple Show documentation
Show all versions of osmosis-pgsimple Show documentation
Osmosis is a Java application and library for processing OSM data.
// This software is released into the Public Domain. See copying.txt for details.
package org.openstreetmap.osmosis.pgsimple.common;
import java.sql.PreparedStatement;
import org.openstreetmap.osmosis.core.database.ReleasableStatementContainer;
import org.openstreetmap.osmosis.core.lifecycle.Closeable;
/**
* Provides functionality common to all dao implementations.
*
* @author Brett Henderson
*/
public class BaseDao implements Closeable {
private DatabaseContext dbCtx;
private ReleasableStatementContainer statementContainer;
/**
* Creates a new instance.
*
* @param dbCtx
* The database context to use for accessing the database.
*/
protected BaseDao(DatabaseContext dbCtx) {
this.dbCtx = dbCtx;
statementContainer = new ReleasableStatementContainer();
}
/**
* Provides access to the database context. In most cases alternative
* methods such as prepareStatement should be used.
*
* @return The database context.
*/
protected DatabaseContext getDatabaseContext() {
return dbCtx;
}
/**
* Creates a new database prepared statement. This statement will be
* automatically released when the dao is released.
*
* @param sql
* The statement to be created.
* @return The newly created statement.
*/
protected PreparedStatement prepareStatement(String sql) {
return statementContainer.add(dbCtx.prepareStatement(sql));
}
/**
* {@inheritDoc}
*/
@Override
public void close() {
statementContainer.close();
}
}