abk.dao.sql
Class ASqlStatement

java.lang.Object
  extended by abk.dao.sql.ASqlStatement
All Implemented Interfaces:
Closeable

public class ASqlStatement
extends Object
implements Closeable


Field Summary
private static ALogger LOGGER
           
private  PreparedStatement stm
           
 
Constructor Summary
ASqlStatement(CharSequence sql, boolean autoGeneratedKeys, Connection conn)
          Crea una sentencia SQL parametrizada.
ASqlStatement(CharSequence sql, Connection conn)
          Crea una sentencia SQL parametrizada.
ASqlStatement(String sql, boolean autoGeneratedKeys, Connection conn)
           
ASqlStatement(String sql, Connection conn)
           
 
Method Summary
 void close()
           
 void copyTo(int index, IDataItem<?> item)
          Copia en el valor del ID del item en la posición indicada de una sentencia SQL.
 void copyTo(int index, Object data, ADataProperty info)
          Copia en una posición determinada de una sentencia SQL el valor de la propiedad del objeto que se le pasa y que se caracterizar por un descriptor de propiedad.
 void copyTo(int index, Object value, AType atype)
          Copia en una posición determinada de una sentencia SQL el valor que se le pasa, suponiendo que es compatible con el tipo que se le pasa.
 int execResult()
          Ejecuta una sentencia SQL del tipo UPDATE, INSERT, etc.
<K extends Serializable,T extends IDataItem<K>>
K
getGeneratedKey(ADataMapper<K,T> mapper)
          Devuelve el ID asignado en la última operación INSERT.
 PreparedStatement getStatement()
           
<K extends Serializable,T extends IDataItem<K>>
K
keyResult(ADataMapper<K,T> mapper)
          Ejecuta una sentencia SQL que devuelve únicamente una clave de una entidad.
<K extends Serializable,T extends IDataItem<K>>
Set<K>
keySetResult(ADataMapper<K,T> mapper)
          Devuelve el conjunto de claves devuelto por una sentencia SQL.
<K extends Serializable,T extends IDataItem<K>>
List<T>
listResult(ADataMapper<K,T> mapper)
          Devuelve una lista de objetos resultado de ejecutar una sentencia SQL.
 Number numberResult()
          Devuelve el valor numérico único que se obtiene tras la ejecución de una sentencia SQL.
 void setInt(int index, int value)
           
 void setString(int index, CharSequence cs)
           
<K extends Serializable,T extends IDataItem<K>>
T
uniqueResult(ADataMapper<K,T> mapper)
          Ejecuta una sentencia SQL que retorna un único resultado, que se corresponde al tipo de dato indicado en el mapeador que se le pasa.
<K extends Serializable,T extends IDataItem<K>>
boolean
uniqueResult(T data, ADataMapper<K,T> mapper)
          Copia en un objeto el resultado único obtenido de ejecutar una sentencia SQL.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOGGER

private static final ALogger LOGGER

stm

private PreparedStatement stm
Constructor Detail

ASqlStatement

public ASqlStatement(CharSequence sql,
                     boolean autoGeneratedKeys,
                     Connection conn)
              throws SQLException
Crea una sentencia SQL parametrizada.

Parameters:
sql - Sentencia SQL en formato de texto.
autoGeneratedKeys - true si se quiere recuperar una clave autogenerada asociada a la ejecución de la sentencia sql.
conn - Conexión con la base de datos.
Throws:
NullPointerException - si conn es null.
SQLException - si Connection.prepareStatement(String) lanza una SQLException.

ASqlStatement

public ASqlStatement(String sql,
                     boolean autoGeneratedKeys,
                     Connection conn)
              throws SQLException
Throws:
SQLException

ASqlStatement

public ASqlStatement(CharSequence sql,
                     Connection conn)
              throws SQLException
Crea una sentencia SQL parametrizada.

Parameters:
sql - Sentencia SQL en formato de texto.
conn - Conexión con la base de datos.
Throws:
NullPointerException - si conn es null.
SQLException - si Connection.prepareStatement(String) lanza una SQLException.

ASqlStatement

public ASqlStatement(String sql,
                     Connection conn)
              throws SQLException
Throws:
SQLException
Method Detail

getStatement

public final PreparedStatement getStatement()

close

public void close()
Specified by:
close in interface Closeable

execResult

public final int execResult()
                     throws SQLException
Ejecuta una sentencia SQL del tipo UPDATE, INSERT, etc.

Returns:
Resultado de la operación, generalmente el número de filas afectadas.
Throws:
NullPointerException - si stm es null.
SQLException - si se produce un error de acceso a datos.
See Also:
PreparedStatement.executeUpdate()

uniqueResult

public final <K extends Serializable,T extends IDataItem<K>> boolean uniqueResult(T data,
                                                                                  ADataMapper<K,T> mapper)
                           throws SQLException
Copia en un objeto el resultado único obtenido de ejecutar una sentencia SQL.

Type Parameters:
K - Tipo de la clave del objeto al que se mapea el resultado.
T - Tipo del objeto al que se mapea el resultado.
Parameters:
data - Objeto sobre el se cargan los valores devueltos al ejecutar la sentencia SQL.
mapper - Mapeador para recoger los datos desde el ResultSet y copiarlos al objeto data.
Returns:
true si al ejecutar la sentencia se recibió un resultado, o false si no se recibió ningún resultado.
Throws:
NullPointerException - si cualquiera de los argumentos es null.
SQLException - si se recibe una SQLException.

uniqueResult

public final <K extends Serializable,T extends IDataItem<K>> T uniqueResult(ADataMapper<K,T> mapper)
                                          throws SQLException
Ejecuta una sentencia SQL que retorna un único resultado, que se corresponde al tipo de dato indicado en el mapeador que se le pasa.

Type Parameters:
K - Tipo de la clave del objeto al que se mapea el resultado.
T - Tipo del objeto al que se mapea el resultado.
Parameters:
mapper - Mapeador para recoger los datos desde el ResultSet y copiarlos al objeto data.
Returns:
Un nuevo objeto de tipo T con el resultado de la ejecución de la sentencia, o null si la sentencia no produjo ningún resultado.
Throws:
NullPointerException - si cualquier de sus argumentos es null.
IllegalStateException - si ClassUtils.createObject(Class) la lanza.
SecurityException - si ClassUtils.createObject(Class) la lanza.
ExceptionInInitializerError - si ClassUtils.createObject(Class) la lanza.
SQLException - si se recibe una SQLException.

numberResult

public final Number numberResult()
                          throws SQLException
Devuelve el valor numérico único que se obtiene tras la ejecución de una sentencia SQL.

Returns:
Valor numérico resultante de la ejecución de la sentencia, o null si la sentencia no devuelve ningún valor.
Throws:
NullPointerException - si stm es null.
ClassCastException - si el resultado de la sentencia no es objeto que extienda Number.
SQLException - si se produce un error SQL.

keyResult

public final <K extends Serializable,T extends IDataItem<K>> K keyResult(ADataMapper<K,T> mapper)
                                       throws SQLException
Ejecuta una sentencia SQL que devuelve únicamente una clave de una entidad.

Type Parameters:
K - Tipo de dato de la clave.
Parameters:
mapper - Mapeador usado para acceder a la información sobre la clave numérica de la entidad.
Returns:
Valor de la clave obtenida o null si la sentencia no devuelve ningún valor.
Throws:
NullPointerException - si cualquiera de los argumentos es null.
ClassCastException - si el valor devuelto por la sentencia no es de tipo K.
SQLException - si se produce un error SQL.
See Also:
ADataMapper.getValueFrom(ResultSet,int,ADataProperty)

listResult

public final <K extends Serializable,T extends IDataItem<K>> List<T> listResult(ADataMapper<K,T> mapper)
                                              throws SQLException
Devuelve una lista de objetos resultado de ejecutar una sentencia SQL.

Type Parameters:
K - Tipo de la clave de los objetos.
T - Tipo del objeto resultante.
Parameters:
mapper - Mapeador para recoger los datos desde el ResultSet y copiarlos a los objetos de la lista devuelta.
Returns:
Lista con los resultados obtenidos. Si no se ha obtenido ninguno, la lista estará vacía, pero no será null.
Throws:
NullPointerException - si cualquier de los argumentos es null.
SQLException - si se produce una excepción SQLException.
IllegalStateException - si ClassUtils.createObject(Class) la lanza.
SecurityException - si ClassUtils.createObject(Class) la lanza.
ExceptionInInitializerError - si ClassUtils.createObject(Class) la lanza.

keySetResult

public final <K extends Serializable,T extends IDataItem<K>> Set<K> keySetResult(ADataMapper<K,T> mapper)
                                               throws SQLException
Devuelve el conjunto de claves devuelto por una sentencia SQL.

Type Parameters:
K - Tipo de la clave de las entidades.
T - Tipo del objeto resultante.
Parameters:
mapper - Mapeador para recoger la clave desde el ResultSet y copiarlo al conjunto que se devuelve.
Returns:
Conjunto con los resultados obtenidos. Si no se ha obtenido ninguno, el conjunto estará vacío, pero no será null.
Throws:
NullPointerException - si cualquiera de los argumentos es null.
ClassCastException - si los valores devueltos no son de tipo K.
SQLException - si se produce una excepción SQLException.

getGeneratedKey

public final <K extends Serializable,T extends IDataItem<K>> K getGeneratedKey(ADataMapper<K,T> mapper)
                                             throws SQLException
Devuelve el ID asignado en la última operación INSERT.

La sentencia debe haber sido preparada con Statement.RETURN_GENERATED_KEYS.

Por ejemplo:

stm = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);

o bien:

stm = SqlUtil.newStatement(sql, true, conn);

Type Parameters:
K - El tipo de clave.
T - Tipo del objeto resultante.
Parameters:
mapper - Mapeador del objeto con los recursos SQL.
Returns:
Último valor asignado.
Throws:
NullPointerException - si cualquiera de los argumentos es nulo.
SQLException - Error en el acceso a la base de datos.

copyTo

public final void copyTo(int index,
                         Object value,
                         AType atype)
                  throws SQLException
Copia en una posición determinada de una sentencia SQL el valor que se le pasa, suponiendo que es compatible con el tipo que se le pasa.

Parameters:
index - Índice de posición, desde 1, del parámetro del la sentencia cuyo valor se está fijando.
value - Valor a colocar en la sentencia SQL.
atype - Tipo a usar para poner el valor en la sentencia.
Throws:
SQLException - si se produce algún error.
IllegalArgumentException - si el tipo atype no es conocido.

copyTo

public final void copyTo(int index,
                         Object data,
                         ADataProperty info)
                  throws SQLException
Copia en una posición determinada de una sentencia SQL el valor de la propiedad del objeto que se le pasa y que se caracterizar por un descriptor de propiedad.

Parameters:
index - Índice de posición, desde 1, del parámetro del la sentencia cuyo valor se está fijando.
data - Objeto que contiene la propiedad indicada en info.
info - Descriptor de las características de la propiedad (nombre, tipo, etc.).
Throws:
SQLException - si se produce algún error.
IllegalArgumentException - si el tipo atype no es conocido.
See Also:
copyTo(int, Object, AType)

copyTo

public final void copyTo(int index,
                         IDataItem<?> item)
                  throws SQLException
Copia en el valor del ID del item en la posición indicada de una sentencia SQL.

Parameters:
item - Elemento cuyo ID se copia en la sentencia.
index - Posición dentro de stm donde se coloca la propiedad.
Throws:
SQLException - Excepción SQL.

setInt

public final void setInt(int index,
                         int value)
                  throws SQLException
Throws:
SQLException

setString

public final void setString(int index,
                            CharSequence cs)
                     throws SQLException
Throws:
SQLException


Copyright © 2024. All rights reserved.