abk.dao.sql
Class SqlUtil

java.lang.Object
  extended by abk.dao.sql.SqlUtil

public final class SqlUtil
extends Object

Contiene métodos de utilidad para el acceso a datos mediante JDBC y las primitivas para implementar la clase ADataMap, así como para sus descendientes.


Constructor Summary
private SqlUtil()
           
 
Method Summary
static void beginTransaction(Connection conn)
          Quita a la conexión el modo de auto commit, de forma que las siguientes instrucciones de modificación de datos tendrán que se confirmadas con Connection.commit() o canceladas con Connection.rollback().
static void close(Connection conn, boolean success)
          Cierra incondicionalmente una conexión JDBC a la base de datos ejecutando un commit o un rollback en función de que se cierre con éxito o no.
static
<R extends ResultSet>
R
close(R rs)
          Cierra el ResultSet de forma silenciosa, sin lanzar excepciones SQLException y tolerando el envío de objetos nulos.
static
<S extends Statement>
S
close(S stm)
          Cierra el Statement de forma silenciosa, sin lanzar excepciones SQLException y tolerando el envío de objetos nulos.
static void commit(Connection conn)
          Confirma y consolida los cambios realizados en la base de datos a través de la conexión desde el último commit realizado.
static
<K extends Serializable,T extends IDataItem<K>>
boolean
contains(K key, ADataMapper<K,T> mapper, Connection conn)
          Verifica si la base de datos tiene un registro con la clave indicada.
static
<K extends Serializable,T extends IDataItem<K>>
boolean
containsAll(Collection<T> c, ADataMapper<K,T> mapper, Connection conn)
          Comprueba que todas las claves pasadas se corresponden con una fila de la base de datos.
static
<K extends Serializable,T extends IDataItem<K>>
int
containsKeys(Set<K> keys, ADataMapper<K,T> mapper, Connection conn)
          Devuelve el número de claves que figuran en la base de datos entre el conjunto de claves que se le pasa.
static
<K extends Serializable,T extends IDataItem<K>>
boolean
delete(K key, ADataMapper<K,T> mapper, Connection conn)
          Borra un registro de la base de datos a partir de su clave.
static int deleteAll(ADataMapper<?,?> mapper, Connection conn)
          Borra todos los registros de la tabla asociada al mapeador.
static
<K extends Serializable,T extends IDataItem<K>>
T
find(K key, boolean forUpdate, ADataMapper<K,T> mapper, Connection conn)
          Devuelve el contenido del registro en forma de objeto T a partir de la clave primaria del registro.
static Connection getConnection(ResultSet rs)
          Devuelve la conexión asociada a un objeto ResultSet.
static
<K extends Serializable,T extends IDataItem<K>>
K
insert(T data, ADataMapper<K,T> mapper, Connection conn)
          Realiza una operación INSERT en la base de datos usando el método autogenerado para obtener la clave asignada automáticamente al nuevo registro.
private static
<K extends Serializable,T extends IDataItem<K>>
K
insertWithAutoIncrement(T data, ADataMapper<K,T> mapper, Connection conn)
          Realiza una operación INSERT en la base de datos usando el método autogenerado para obtener la clave asignada automáticamente al nuevo registro.
private static
<K extends Serializable,T extends IDataItem<K>>
K
insertWithSequence(T data, ADataMapper<K,T> mapper, Connection conn)
          Realiza una operación INSERT en la base de datos usando una secuencia Oracle para obtener la clave asignada automáticamente al nuevo registro.
static
<K extends Serializable,T extends IDataItem<K>>
Set<K>
keySet(ADataMapper<K,T> mapper, Connection conn)
          Devuelve el conjunto de claves de la tabla.
static
<K extends Serializable,T extends IDataItem<K>>
boolean
load(T data, ADataMapper<K,T> mapper, Connection conn)
          Carga una entidad desde la base de datos.
static
<K extends Serializable,T extends IDataItem<K>>
List<T>
loadAll(ADataMapper<K,T> mapper, Connection conn)
          Carga todos los registros de la tabla de la base de datos.
private static ALogger logger()
          Crea un logger para la clase SqlUtil.
static Number mysqlLastInsertId(Connection conn)
          Deprecated. Si se utiliza está función el código no podrá reutilizarse en otro motor de base de datos.
static Date parseDate(String s)
           
static Time parseTime(String s)
           
static Timestamp parseTimestamp(String s)
           
static
<K extends Serializable,T extends IDataItem<K>>
T
put(T data, boolean lock, ADataMapper<K,T> mapper, Connection conn)
          Pone un objeto en la base de datos, reemplazando su valor antiguo si lo tuviera o insertándolo si no existiese ninguna fila con la misma clave del objeto.
static
<K extends Serializable,T extends IDataItem<K>>
void
putAll(Collection<? extends T> c, ADataMapper<K,T> mapper, Connection conn)
          Inserta o actualiza la base de datos con la colección de objetos de transferencia que se le pasan.
static
<K extends Serializable,T extends IDataItem<K>>
T
remove(K key, boolean lock, ADataMapper<K,T> mapper, Connection conn)
          Borra un registro de la base de datos a partir de su clave, pero recuperando primero el contenido del registro a borrar.
static void rollback(Connection conn)
          Cancela los cambios realizados en la base de datos a través de la conexión desde el último commit realizado.
static
<K extends Serializable,T extends IDataItem<K>>
boolean
save(T data, ADataMapper<K,T> mapper, Connection conn)
          Graba un nuevo objeto insertándolo en la base de datos.
static
<K extends Serializable,T extends IDataItem<K>>
boolean
saveAll(Iterable<? extends T> all, ADataMapper<K,T> mapper, Connection conn)
          Graba una colección de objetos en la base de datos.
static int size(ADataMapper<?,?> mapper, Connection conn)
          Devuelve la cantidad de filas que tiene una tabla de la base de datos.
static SQLException sqlException(Throwable ex)
          Devuelve una excepción SQL.
static
<K extends Serializable,T extends IDataItem<K>>
boolean
update(T data, ADataMapper<K,T> mapper, Connection conn)
          Actualiza un registro de la base de datos con los valores de las propiedades que se le pasan en el objeto.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SqlUtil

private SqlUtil()
Method Detail

logger

private static final ALogger logger()
Crea un logger para la clase SqlUtil.

Returns:
Logger asociado a SqlUtil.class.

parseDate

public static final Date parseDate(String s)
                            throws SQLException
Throws:
SQLException

parseTime

public static final Time parseTime(String s)
                            throws SQLException
Throws:
SQLException

parseTimestamp

public static final Timestamp parseTimestamp(String s)
                                      throws SQLException
Throws:
SQLException

sqlException

public static final SQLException sqlException(Throwable ex)
Devuelve una excepción SQL. Si ex es de tipo SQLException devuelve la propia excepción ex. En otro caso devuelve una nueva excepción cuya causa se basa en ex.

Parameters:
ex - Excepción que se le pasa.
Returns:
Excepción del tipo SQLException.
Throws:
RuntimeException - si ex es de tipo RuntimeException.
Error - si ex es de tipo Error.

close

public static final void close(Connection conn,
                               boolean success)
                        throws IOException
Cierra incondicionalmente una conexión JDBC a la base de datos ejecutando un commit o un rollback en función de que se cierre con éxito o no.

Parameters:
conn - Conexión a cerrar.
success - Indicación de si la operación tuvo éxito, y se debe realizar un Connection.commit(), o si falló por lo que se debe hacer un Connection.rollback() antes de cerrar.
Throws:
IOException - si se produce una excepción SQLException durante la operación, en cuyo caso dicha excepción original figurará como causa de la excepción lanzada.

close

public static final <R extends ResultSet> R close(R rs)
Cierra el ResultSet de forma silenciosa, sin lanzar excepciones SQLException y tolerando el envío de objetos nulos.

Type Parameters:
R - Tipo de objeto que se está cerrando.
Parameters:
rs - ResultSet a cerrar.
Returns:
Devuelve null pero como tipo de dato T.

close

public static final <S extends Statement> S close(S stm)
Cierra el Statement de forma silenciosa, sin lanzar excepciones SQLException y tolerando el envío de objetos nulos.

Type Parameters:
S - Tipo de objeto que se está cerrando.
Parameters:
stm - Statement a cerrar.
Returns:
Devuelve null pero como tipo de dato T.

beginTransaction

public static final void beginTransaction(Connection conn)
                                   throws SQLException
Quita a la conexión el modo de auto commit, de forma que las siguientes instrucciones de modificación de datos tendrán que se confirmadas con Connection.commit() o canceladas con Connection.rollback().

Parameters:
conn - Conexión a la base de datos.
Throws:
SQLException - si se produce algún error.
NullPointerException - si se produce una SQLException.
See Also:
Connection.setAutoCommit(boolean)

commit

public static final void commit(Connection conn)
Confirma y consolida los cambios realizados en la base de datos a través de la conexión desde el último commit realizado.

Al realizar el commit la conexión se activa también el modo auto commit de la conexión.

Parameters:
conn - Conexión a la base de datos.
Throws:
NullPointerException - si conn es null.
See Also:
Connection.commit(), Connection.setAutoCommit(boolean)

rollback

public static final void rollback(Connection conn)
Cancela los cambios realizados en la base de datos a través de la conexión desde el último commit realizado.

Al ejecutar el rollback la conexión se activa también el modo auto commit de la conexión.

Parameters:
conn - Conexión a la base de datos.
Throws:
NullPointerException - si conn es null.
See Also:
Connection.rollback(), Connection.setAutoCommit(boolean)

getConnection

public static final Connection getConnection(ResultSet rs)
                                      throws SQLException
Devuelve la conexión asociada a un objeto ResultSet.

Parameters:
rs - Instancia de ResultSet
Returns:
Conexión a la base de datos, o null si rs es nulo o no se ha obtenido a través de una sentencia SQL.
Throws:
SQLException - si se produce un error en el acceso a datos o si el objeto ResultSet estaba cerrado.
See Also:
ResultSet, ResultSet.getStatement()

mysqlLastInsertId

@Deprecated
public static final Number mysqlLastInsertId(Connection conn)
                                      throws SQLException
Deprecated. Si se utiliza está función el código no podrá reutilizarse en otro motor de base de datos.

Devuelve, para MySQL/MariaDB, el ID asignado en la última operación INSERT.

Parameters:
conn - Conexión con la base de datos.
Returns:
Último valor asignado, o null si no existe tal valor.
Throws:
SQLException - si se produce un error.
See Also:
ASqlStatement.getGeneratedKey(ADataMapper)

size

public static final int size(ADataMapper<?,?> mapper,
                             Connection conn)
                      throws SQLException
Devuelve la cantidad de filas que tiene una tabla de la base de datos.

Parameters:
mapper - Mapeador del objeto con los recursos SQL.
conn - Conexión con la base de datos.
Returns:
Número de filas.
Throws:
NullPointerException - si cualquiera de los argumentos es null.
SQLException - si se produce algún error.

contains

public static final <K extends Serializable,T extends IDataItem<K>> boolean contains(K key,
                                                                                     ADataMapper<K,T> mapper,
                                                                                     Connection conn)
                              throws SQLException
Verifica si la base de datos tiene un registro con la clave indicada.

Type Parameters:
K - Tipo de dato de la clave.
Parameters:
key - Valor de la clave.
mapper - Mapeador del tipo de objeto a recursos de la base de datos.
conn - Conexión con la base de datos.
Returns:
true si existe al menos registro con la clave indicada.
Throws:
NullPointerException - si mapper o conn son nulos.
SQLException - si se produce un error en el acceso a datos.

load

public static final <K extends Serializable,T extends IDataItem<K>> boolean load(T data,
                                                                                 ADataMapper<K,T> mapper,
                                                                                 Connection conn)
                          throws SQLException
Carga una entidad desde la base de datos.

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 - Entidad a cargar. El campo con la clave debe estar inicializado.
mapper - Mapeador del tipo de dato.
conn - Conexión a la base de datos.
Returns:
Devuelve true si el dato se ha cargado, o false si no se ha encontrado el objeto.
Throws:
NullPointerException - si alguno de los argumentos es nulo.
SQLException - Excepción de SQL.

find

public static final <K extends Serializable,T extends IDataItem<K>> T find(K key,
                                                                           boolean forUpdate,
                                                                           ADataMapper<K,T> mapper,
                                                                           Connection conn)
                                         throws SQLException
Devuelve el contenido del registro en forma de objeto T a partir de la clave primaria del registro.

Type Parameters:
K - Tipo de la clave.
T - Tipo del objeto a devolver.
Parameters:
key - Valor de la clave.
forUpdate - true si se quiere bloquear el registro encontrado en la base de datos.
mapper - Mapeador del tipo T a recursos de la conexión a base de datos.
conn - Conexión con la base de datos.
Returns:
El objeto encontrado o null si no existe tal objeto o key es nulo.
Throws:
NullPointerException - si mapper o conn son nulos.
SQLException - si hay un error de acceso a datos.

loadAll

public static final <K extends Serializable,T extends IDataItem<K>> List<T> loadAll(ADataMapper<K,T> mapper,
                                                                                    Connection conn)
                                                  throws SQLException
Carga todos los registros de la tabla de la base de datos.

Type Parameters:
K - Tipo de la clave.
T - Tipo del objeto al que se mapean los registros.
Parameters:
mapper - Mapeador del tipo T a recursos de la conexión a base de datos.
conn - Conexión.
Returns:
Lista con todos los valores de la tabla. La lista estará vacía si no hay registros.
Throws:
NullPointerException - si mapper o conn son nulos.
SQLException - Error de acceso a datos.

save

public static final <K extends Serializable,T extends IDataItem<K>> boolean save(T data,
                                                                                 ADataMapper<K,T> mapper,
                                                                                 Connection conn)
                          throws SQLException
Graba un nuevo objeto insertándolo en la base de datos. El dato debe tener rellenos todos los datos obligatorios, incluida la clave.

Type Parameters:
K - Tipo de la clave.
T - Tipo del objeto al que se mapean los registros.
Parameters:
data - Dato a grabar.
mapper - Mapeador del tipo T a recursos de la conexión a base de datos.
conn - Conexión.
Returns:
true si el registro se añadió correctamente.
Throws:
NullArgumentException - si alguno de los argumentos es nulo.
SQLException - si se produce un error de acceso a datos.
See Also:
insert(T, abk.dao.sql.ADataMapper, java.sql.Connection)

saveAll

public static final <K extends Serializable,T extends IDataItem<K>> boolean saveAll(Iterable<? extends T> all,
                                                                                    ADataMapper<K,T> mapper,
                                                                                    Connection conn)
                             throws SQLException
Graba una colección de objetos en la base de datos.

Type Parameters:
K - Tipo de la clave de los objetos.
T - Tipo de los objetos.
Parameters:
all - Colección de objetos.
mapper - Mapeador del tipo T a recursos de la conexión a base de datos.
conn - Conexión.
Returns:
true si se han grabado todos los objetos. En otro caso se devuelve false y no se graba ningún objeto.
Throws:
NullArgumentException - si alguno de los argumentos es nulo.
SQLException - si se produce un error de acceso a datos.

insert

public static final <K extends Serializable,T extends IDataItem<K>> K insert(T data,
                                                                             ADataMapper<K,T> mapper,
                                                                             Connection conn)
                                           throws SQLException
Realiza una operación INSERT en la base de datos usando el método autogenerado para obtener la clave asignada automáticamente al nuevo registro.

El método comprueba si el mapeador tiene una secuencia. Si la tiene invoca a insertWithSequence(IDataItem, ADataMapper, Connection). En caso contrario invoca a insertWithAutoIncrement(IDataItem, ADataMapper, Connection).

Type Parameters:
K - Tipo de la clave.
T - Tipo del objeto en el que se mapea el registro.
Parameters:
data - Objeto a insertar en la base de datos. Su propiedad key es ignorada.
mapper - Mapeador del tipo T a recursos de la conexión a base de datos.
conn - Conexión con la base de datos.
Returns:
La clave asignada al registro insertado, o null si la inserción ha fallado.
Throws:
NullPointerException - si alguno de los argumentos es nulo.
SQLException - si se produce un error de acceso a datos.

insertWithAutoIncrement

private static final <K extends Serializable,T extends IDataItem<K>> K insertWithAutoIncrement(T data,
                                                                                               ADataMapper<K,T> mapper,
                                                                                               Connection conn)
                                                             throws SQLException
Realiza una operación INSERT en la base de datos usando el método autogenerado para obtener la clave asignada automáticamente al nuevo registro.

Type Parameters:
K - Tipo de la clave.
T - Tipo del objeto en el que se mapea el registro.
Parameters:
data - Objeto a insertar en la base de datos. Su propiedad key es ignorada.
mapper - Mapeador del tipo T a recursos de la conexión a base de datos.
conn - Conexión con la base de datos.
Returns:
La clave asignada al registro insertado, o null si la inserción ha fallado.
Throws:
NullArgumentException - si alguno de los argumentos es nulo.
SQLException - si se produce un error de acceso a datos.

insertWithSequence

private static final <K extends Serializable,T extends IDataItem<K>> K insertWithSequence(T data,
                                                                                          ADataMapper<K,T> mapper,
                                                                                          Connection conn)
                                                        throws SQLException
Realiza una operación INSERT en la base de datos usando una secuencia Oracle para obtener la clave asignada automáticamente al nuevo registro.

Type Parameters:
K - Tipo de la clave.
T - Tipo del objeto en el que se mapea el registro.
Parameters:
data - Objeto a insertar en la base de datos. Su propiedad key es ignorada.
mapper - Mapeador del tipo T a recursos de la conexión a base de datos.
conn - Conexión con la base de datos.
Returns:
La clave asignada al registro insertado, o null si la inserción ha fallado.
Throws:
NullPointerException - si alguno de los argumentos es nulo.
SQLException - si se produce un error de acceso a datos.

update

public static final <K extends Serializable,T extends IDataItem<K>> boolean update(T data,
                                                                                   ADataMapper<K,T> mapper,
                                                                                   Connection conn)
                            throws SQLException
Actualiza un registro de la base de datos con los valores de las propiedades que se le pasan en el objeto.

Type Parameters:
K - Tipo de la clave.
T - Tipo del objeto en el que se mapea el registro.
Parameters:
data - Objeto con los datos para actualizar el registro.
mapper - Mapeador del tipo T a recursos de la conexión a base de datos.
conn - Conexión con la base de datos.
Returns:
true si la operación se realizó con éxito, o false en caso contrario.
Throws:
NullArgumentException - si alguno de los argumentos es nulo.
SQLException - si se produce un error de acceso a datos.

put

public static final <K extends Serializable,T extends IDataItem<K>> T put(T data,
                                                                          boolean lock,
                                                                          ADataMapper<K,T> mapper,
                                                                          Connection conn)
                                        throws SQLException
Pone un objeto en la base de datos, reemplazando su valor antiguo si lo tuviera o insertándolo si no existiese ninguna fila con la misma clave del objeto.

Type Parameters:
K - Tipo de la clave del objeto.
T - Tipo del objeto.
Parameters:
data - Objeto a poner.
lock - Indica que se bloquee la fila de la tabla entre que se encuentre y se actualice.
mapper - Mapeador del tipo de objeto a objetos de SQL.
conn - Conexión con la base de datos.
Returns:
Objeto con los valores que figuraban en la base de datos, o null si no había ningún registro con la misma clave de item.
Throws:
NullArgumentException - si alguno de los argumentos es nulo.
SQLException - si se produce un error de acceso a datos.

putAll

public static final <K extends Serializable,T extends IDataItem<K>> void putAll(Collection<? extends T> c,
                                                                                ADataMapper<K,T> mapper,
                                                                                Connection conn)
                         throws SQLException
Inserta o actualiza la base de datos con la colección de objetos de transferencia que se le pasan.

Type Parameters:
K - Tipo de la clave primaria del objeto.
T - Tipo del objeto de transferencia.
Parameters:
c - Colección de objetos a grabar o actualizar en la base de datos.
mapper - Mapeador del tipo de objeto a objetos de SQL.
conn - Conexión con la base de datos.
Throws:
NullArgumentException - si mapper es nulo.
SQLException - si se produce un error de acceso a datos.

delete

public static final <K extends Serializable,T extends IDataItem<K>> boolean delete(K key,
                                                                                   ADataMapper<K,T> mapper,
                                                                                   Connection conn)
                            throws SQLException
Borra un registro de la base de datos a partir de su clave.

Type Parameters:
K - Tipo de la clave del objeto.
Parameters:
key - Valor de la clave del registro a borrar.
mapper - Mapeador del tipo de objeto a objetos de SQL.
conn - Conexión con la base de datos.
Returns:
true si la clave identificaba a un registro y éste ha sido borrado. false en otro caso, incluyendo que key sea nulo.
Throws:
NullPointerException - si mapper o conn son nulos.
SQLException - si se produce un error de acceso a datos.

remove

public static final <K extends Serializable,T extends IDataItem<K>> T remove(K key,
                                                                             boolean lock,
                                                                             ADataMapper<K,T> mapper,
                                                                             Connection conn)
                                           throws SQLException
Borra un registro de la base de datos a partir de su clave, pero recuperando primero el contenido del registro a borrar.

Type Parameters:
K - Tipo de la clave del objeto.
T - Tipo del objeto.
Parameters:
key - Clave que identifica el registro a borrar.
lock - Indica que se bloquee la fila de la tabla entre que se encuentre y se actualice.
mapper - Mapeador del tipo de objeto a objetos de SQL.
conn - Conexión con la base de datos.
Returns:
Objeto con los datos del registro borrado.
Throws:
NullPointerException - si mapper o conn son nulos.
SQLException - si se produce un error de acceso a datos.

deleteAll

public static int deleteAll(ADataMapper<?,?> mapper,
                            Connection conn)
                     throws SQLException
Borra todos los registros de la tabla asociada al mapeador.

Parameters:
mapper - Mapeador del tipo de objeto a objetos de SQL.
conn - Conexión con la base de datos.
Returns:
Número de registros borrados.
Throws:
NullPointerException - si mapper o conn son nulos.
SQLException - si se produce un error de acceso a datos.

keySet

public static final <K extends Serializable,T extends IDataItem<K>> Set<K> keySet(ADataMapper<K,T> mapper,
                                                                                  Connection conn)
                                                throws SQLException
Devuelve el conjunto de claves de la tabla.

Type Parameters:
K - Tipo de la clave del objeto.
Parameters:
mapper - Mapeador del tipo de objeto a objetos de SQL.
conn - Conexión con la base de datos.
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 un error de acceso a datos.

containsAll

public static final <K extends Serializable,T extends IDataItem<K>> boolean containsAll(Collection<T> c,
                                                                                        ADataMapper<K,T> mapper,
                                                                                        Connection conn)
                                 throws SQLException
Comprueba que todas las claves pasadas se corresponden con una fila de la base de datos.

Type Parameters:
K - Tipo de la clave.
T - Tipo de la entidad mapeada a la tabla.
Parameters:
c - Colección de entidades cuyas claves se verifican.
mapper - Mapeador del tipo de objeto a objetos de SQL.
conn - Conexión con la base de datos.
Returns:
true si todos los registros que se le pasan tienen en la tabla de datos su fila correspondiente con la misma clave primaria.
Throws:
SQLException - si se produce un error de acceso a datos.
NullPointerException - si alguno de los argumentos es nulo, o si alguna de los objetos, o sus claves primarias, recibidas desde c es nula.

containsKeys

public static final <K extends Serializable,T extends IDataItem<K>> int containsKeys(Set<K> keys,
                                                                                     ADataMapper<K,T> mapper,
                                                                                     Connection conn)
                              throws SQLException
Devuelve el número de claves que figuran en la base de datos entre el conjunto de claves que se le pasa.

Type Parameters:
K - Tipo de la clave.
Parameters:
keys - Conjunto de claves a comprobar.
mapper - Mapeador del tipo de objeto a objetos de SQL.
conn - Conexión con la base de datos.
Returns:
Número de claves en keys que figuran en la tabla configurada en el objeto mapeador.
Throws:
SQLException - si se produce un error de acceso a datos.
NullPointerException - si alguno de los argumentos es nulo, o si alguna de las claves recibidas desde keys es nula.


Copyright © 2024. All rights reserved.