
de.xore.util.persistence.QueryManager Maven / Gradle / Ivy
package de.xore.util.persistence;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.List;
import java.util.Properties;
/**
* Soll/kann von den einzelnen Modulen ueberschrieben werden - mit den entsprechenden Queries
* Date: 14.04.2005
* Time: 14:38:17
*
* @author Johannes Schneider - Xore
* Systems
*/
public abstract class QueryManager {
protected DatabaseConnector connector;
protected QueryManager( @NotNull DatabaseConnector connector ) {
this.connector = connector;
}
public DatabaseConnector getConnector() {
return connector;
}
public void refresh( Object obj ) {
connector.beginTransaction();
connector.refresh( obj );
connector.commit();
}
/**
* Update the database
*
* @param obj the object that is saved
*/
public void update( Object obj ) {
connector.beginTransaction();
connector.update( obj );
connector.commit();
}
public void save( @NotNull Object object ) {
connector.beginTransaction();
connector.save( object );
connector.commit(); //todo wirklich automatisch committen??
}
public void saveOrUpdate( @NotNull Object object ) {
connector.beginTransaction();
connector.saveOrUpdate( object );
connector.commit(); //todo wirklich automatisch committen??
}
public void delete( @NotNull Object object ) {
connector.beginTransaction();
connector.delete( object );
connector.commit();
}
@Nullable
public T getFirstQueryResult( String queryString ) throws DatabaseException {
List queryResult = getQueryResult( queryString );
if ( !queryResult.isEmpty() ) {
return queryResult.get( 0 );
}
return null;
}
@Nullable
public T getFirstQueryResult( String queryString, Properties params ) throws DatabaseException {
List queryResult = getQueryResult( queryString, params );
if ( !queryResult.isEmpty() ) {
return queryResult.get( 0 );
}
return null;
}
@Nullable
public T getFirstQueryResult( String queryString, String name, String val ) throws DatabaseException {
List queryResult = getQueryResult( queryString, name, val );
if ( !queryResult.isEmpty() ) {
return queryResult.get( 0 );
}
return null;
}
public abstract List getQueryResult( String queryString ) throws DatabaseException;
public abstract List getQueryResult( String queryString, Properties params ) throws DatabaseException;
public abstract List getQueryResult( String queryString, String property, String value ) throws DatabaseException;
public void dispose() {
getConnector().dispose();
}
}