package @package@;
import fr.paris.lutece.util.ReferenceList;
import fr.paris.lutece.util.sql.DAOUtil;
import java.util.ArrayList;
import java.util.List;
public final class @classname@DAO implements I@classname@DAO
{
private static final String SQL_QUERY_NEW_PK = " @select_max_sql_statement@ ";
private static final String SQL_QUERY_SELECT = " @select_sql_statement@ ";
private static final String SQL_QUERY_INSERT = " @insert_sql_statement@ ";
private static final String SQL_QUERY_DELETE = " @delete_sql_statement@ ";
private static final String SQL_QUERY_UPDATE = " @update_sql_statement@ ";
private static final String SQL_QUERY_SELECTALL = " @select_all_sql_statement@ ";
private static @classname@DAO _dao = new @classname@DAO();
private @classname@DAO()
{
}
static @classname@DAO getInstance()
{
return _dao;
}
public int newPrimaryKey()
{
DAOUtil daoUtil = new DAOUtil( SQL_QUERY_NEW_PK );
daoUtil.executeQuery();
int nKey;
if( !daoUtil.next() )
{
// if the table is empty
nKey = 1;
}
nKey = daoUtil.getInt( 1 ) + 1;
daoUtil.free();
return nKey;
}
synchronized void insert( @classname@ @instance_name@ )
{
DAOUtil daoUtil = new DAOUtil( SQL_QUERY_INSERT );
@instance_name@.setId( newPrimaryKey() );
@insert_statement_setting@
daoUtil.executeUpdate();
daoUtil.free();
}
@classname@ load( int n@classname@Id )
{
DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT );
daoUtil.setInt( 1 , n@classname@Id );
daoUtil.executeQuery();
@classname@ @instance_name@ = null;
if ( daoUtil.next( ) )
{
@instance_name@ = new @classname@();
@select_results@
}
daoUtil.free();
return @instance_name@;
}
void delete( int n@classname@Id )
{
DAOUtil daoUtil = new DAOUtil( SQL_QUERY_DELETE );
daoUtil.setInt( 1 , n@classname@Id );
daoUtil.executeUpdate();
daoUtil.free();
}
void store( @classname@ @instance_name@ )
{
DAOUtil daoUtil = new DAOUtil( SQL_QUERY_UPDATE );
@update_statement_setting@
daoUtil.executeUpdate();
daoUtil.free();
}
List<@classname@> select@classname@List()
{
List<@classname@> list@classname@s = new ArrayList( );
DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECTALL );
daoUtil.executeQuery( );
while ( daoUtil.next( ) )
{
@classname@ @instance_name@ = new @classname@( );
@select_all_results@
list@classname@s.add( @instance_name@ );
}
daoUtil.free();
return list@classname@s;
}
}