package ${businessClass.packageName};
import fr.paris.lutece.util.sql.DAOUtil;
import java.util.ArrayList;
import java.util.Collection;
public final class ${businessClass.businessClass}DAO implements I${businessClass.businessClass}DAO
{
private static final String SQL_QUERY_NEW_PK = "SELECT max( ${businessClass.idColumnName} ) FROM ${businessClass.table}";
private static final String SQL_QUERY_SELECT = "SELECT <#list businessClass.attributeList as attribute>${attribute.columnName}<#if attribute_has_next>, #if>#list> FROM ${businessClass.table} WHERE ${businessClass.idColumnName} = ?";
private static final String SQL_QUERY_INSERT = "INSERT INTO ${businessClass.table} ( <#list businessClass.attributeList as attribute>${attribute.columnName}<#if attribute_has_next>, #if>#list> ) VALUES ( <#list businessClass.attributeList as attribute>?<#if attribute_has_next>, #if>#list> ) ";
private static final String SQL_QUERY_DELETE = "DELETE FROM ${businessClass.table} WHERE ${businessClass.idColumnName} = ? ";
private static final String SQL_QUERY_UPDATE = "UPDATE ${businessClass.table} SET <#list businessClass.attributeList as attribute>${attribute.columnName} = ?<#if attribute_has_next>, #if>#list> WHERE ${businessClass.idColumnName} = ?";
private static final String SQL_QUERY_SELECTALL = "SELECT <#list businessClass.attributeList as attribute>${attribute.columnName}<#if attribute_has_next>, #if>#list> FROM ${businessClass.table}";
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;
}
public void insert( ${businessClass.businessClass} ${businessClass.instanceName} )
{
DAOUtil daoUtil = new DAOUtil( SQL_QUERY_INSERT );
${businessClass.instanceName}.setId( newPrimaryKey() );
<#list businessClass.attributeList as attribute>
daoUtil.set${attribute.type?cap_first} ( ${attribute_index + 1}, ${businessClass.instanceName}.get${attribute.name} ( ) );
#list>
daoUtil.executeUpdate();
daoUtil.free();
}
public ${businessClass.businessClass} load( int nId )
{
DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT );
daoUtil.setInt( 1 , nId );
daoUtil.executeQuery();
${businessClass.businessClass} ${businessClass.instanceName} = null;
if ( daoUtil.next() )
{
${businessClass.instanceName} = new ${businessClass.businessClass}();
<#list businessClass.attributeList as attribute>
${businessClass.instanceName}.set${attribute.name}( daoUtil.get${attribute.type?cap_first}( ${attribute_index + 1} ) );
#list>
}
daoUtil.free();
return ${businessClass.instanceName};
}
public void delete( int n${businessClass.businessClass}Id )
{
DAOUtil daoUtil = new DAOUtil( SQL_QUERY_DELETE );
daoUtil.setInt( 1 , n${businessClass.businessClass}Id );
daoUtil.executeUpdate();
daoUtil.free();
}
public void store( ${businessClass.businessClass} ${businessClass.instanceName} )
{
DAOUtil daoUtil = new DAOUtil( SQL_QUERY_UPDATE );
<#list businessClass.attributeList as attribute>
<#assign nIndex=attribute_index+1 >
daoUtil.set${attribute.type?cap_first}( ${nIndex}, ${businessClass.instanceName}.get${attribute.name}( ) );
#list>
daoUtil.setInt( ${nIndex+1}, ${businessClass.instanceName}.getId( ) );
daoUtil.executeUpdate( );
daoUtil.free( );
}
public Collection<${businessClass.businessClass}> select${businessClass.businessClass}sList()
{
Collection<${businessClass.businessClass}> ${businessClass.instanceName}List = new ArrayList<${businessClass.businessClass}>( );
DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECTALL );
daoUtil.executeQuery( );
while ( daoUtil.next( ) )
{
${businessClass.businessClass} ${businessClass.instanceName} = new ${businessClass.businessClass}( );
<#list businessClass.attributeList as attribute>
${businessClass.instanceName}.set${attribute.name}( daoUtil.get${attribute.type?cap_first}( ${attribute_index+1} ) );
#list>
${businessClass.instanceName}List.add( ${businessClass.instanceName} );
}
daoUtil.free();
return ${businessClass.instanceName}List;
}
}