com.ejie.r01f.sql
Class DBManager

java.lang.Object
  extended bycom.ejie.r01f.sql.DBManager

public class DBManager
extends java.lang.Object


Constructor Summary
DBManager()
          Constructor vacio
DBManager(java.sql.Connection conx)
          Constructor a partir de otra conexión de base de datos (para reutilizar conexiones de base de datos)
DBManager(java.util.Properties conxProps)
          Constructor a partir de las propiedades de conexion a base de datos
DBManager(java.lang.String appCode, java.lang.String conxName)
          Constructor a partir del codigo de aplicación y del nombre de la conexión a utilizar
 
Method Summary
 void beginTransaction()
          Comienza una transaccion
 void commit()
          Hace commit de los cambios en BD
 boolean createNewSequence(java.lang.String seqName, long startValue, int increment)
          Crea una nueva secuencia en la base de datos
 void endTransaction()
          Finaliza la transacción haciendo un commit implicitamente
 int executeDelete(java.lang.String deleteSQL)
          Ejecuta una sentencia DELETE
 int executeDelete(java.lang.String table, java.lang.String where, java.util.List params)
          Ejecuta una sentencia DELETE
 int executeInsert(java.util.List insertData, java.lang.String table, java.util.List params)
          Ejecuta una sentencia INSERT
 int executeInsert(java.lang.String insertSQL)
          Ejecuta una sentencia INSERT
 java.util.List executeQuery(java.lang.String sql, java.util.List params)
          Método que permite ejecutar una query con parametros en la base de datos Primero se prepara la query sustituyendo los simbolos "?"
 java.util.List executeSelect(java.util.List columns, java.util.List tables, java.util.List params, java.lang.String where, int[] orderColumns, boolean desc, boolean distinctRows)
          Ejecuta una sentencia SELECT
 int executeStatement(java.lang.String sql, java.util.List params)
          Ejecuta un statement en la base de datos a partir de una sentencia SQL a ejecutar y los parámetros a dicha sentencia.
 int executeUpdate(java.util.List updateData, java.lang.String table, java.lang.String where, java.util.List params)
          Ejecuta una sentencia UPDATE
 int executeUpdate(java.lang.String updateSQL)
          Ejecuta una sentencia UPDATE
 void finalice()
          Liberar la conexion de base de datos
 java.io.InputStream getBLOBInputStream(java.lang.String tableName, java.lang.String blobColumnName, java.util.Map pk)
          Obtiene un InputStream a una columna tipo BLOB
 java.io.OutputStream getBLOBOutputStream(java.lang.String tableName, java.lang.String blobColumnName, java.util.Map pk)
          Actualiza una columna tipo BLOB Este método a diferencia de updateBLOB NO requiere tener todo el array de bytes con el contenido del CLOB en memoria, sino que a medida que se lee el contenido con un inputStream, se escribe en el outputStream devuelto
 java.io.Reader getCLOBReader(java.lang.String tableName, java.lang.String clobColumnName, java.util.Map pk)
          Obtiene un reader a una columna tipo CLOB
 java.io.Writer getCLOBWriter(java.lang.String tableName, java.lang.String clobColumnName, java.util.Map pk)
          Actualiza una columna tipo CLOB Este método a diferencia de updateCLOB NO requiere tener todo el String con el contenido del CLOB en memoria, sino que a medida que se lee el contenido con un reader, se escribe en el writer devuelto
 java.util.Properties getConnectionProperties()
          Devuelve las propiedades
 long getSequenceNextValue(java.lang.String seqName)
          Obtiene el siguiente valor de la secuencia cuyo nombre se pasa como parametro
 byte[] loadBLOB(java.lang.String tableName, java.lang.String blobColumnName, java.util.Map pk)
          Carga una columna tipo BLOB
 java.lang.String loadCLOB(java.lang.String tableName, java.lang.String clobColumnName, java.util.Map pk)
          Carga una columna tipo CLOB
 void rollBackTransaction()
          Cancela los cambios en la transacción
 void setConnectionProperties(java.util.Properties props)
          Establece las propiedades para obtener conexiones
 void updateBLOB(java.lang.String tableName, java.lang.String blobColumnName, java.util.Map pk, byte[] newValue)
          Actualiza una columna tipo BLOB
 void updateCLOB(java.lang.String tableName, java.lang.String clobColumnName, java.util.Map pk, java.lang.String newValue)
          Actualiza una columna tipo CBLOB
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DBManager

public DBManager()
Constructor vacio


DBManager

public DBManager(java.util.Properties conxProps)
Constructor a partir de las propiedades de conexion a base de datos


DBManager

public DBManager(java.sql.Connection conx)
Constructor a partir de otra conexión de base de datos (para reutilizar conexiones de base de datos)


DBManager

public DBManager(java.lang.String appCode,
                 java.lang.String conxName)
Constructor a partir del codigo de aplicación y del nombre de la conexión a utilizar

Parameters:
appCode - El codigo de aplicación (se utiliza para encontrar el properties)
conxName - El nombre de la conexión a base de datos a utilizar Se utiliza para obtener la configuración de las properties
Method Detail

finalice

public void finalice()
Liberar la conexion de base de datos


setConnectionProperties

public void setConnectionProperties(java.util.Properties props)
Establece las propiedades para obtener conexiones


getConnectionProperties

public java.util.Properties getConnectionProperties()
Devuelve las propiedades

Returns:

beginTransaction

public void beginTransaction()
                      throws java.sql.SQLException
Comienza una transaccion

Throws:
java.sql.SQLException

endTransaction

public void endTransaction()
                    throws java.sql.SQLException
Finaliza la transacción haciendo un commit implicitamente

Throws:
java.sql.SQLException

rollBackTransaction

public void rollBackTransaction()
                         throws java.sql.SQLException
Cancela los cambios en la transacción

Throws:
java.sql.SQLException

commit

public void commit()
            throws java.sql.SQLException
Hace commit de los cambios en BD

Throws:
java.sql.SQLException

executeSelect

public java.util.List executeSelect(java.util.List columns,
                                    java.util.List tables,
                                    java.util.List params,
                                    java.lang.String where,
                                    int[] orderColumns,
                                    boolean desc,
                                    boolean distinctRows)
                             throws java.sql.SQLException
Ejecuta una sentencia SELECT

Parameters:
columns - Columnas que intervienen en la select
tables - Tablas que intervienen en la select
params - Lista con los parametros de la parte WHERE de la select
where - WHERE de la select
orderColumns - indice de las columnas por las que se ordena
desc - indica si los resultados se ordenan de forma descendente
distinctRows - Indica si hay que incluir el indicador DISTINCT en la select
Returns:
las filas encontradas en la base de datos en forma de una lista en la que cada elemento es un mapa con la estructura: nombreColumna|valor
Throws:
java.sql.SQLException - si hay algun error al acceder a la base de datos

executeQuery

public java.util.List executeQuery(java.lang.String sql,
                                   java.util.List params)
                            throws java.sql.SQLException
Método que permite ejecutar una query con parametros en la base de datos Primero se prepara la query sustituyendo los simbolos "?" del String (primer parametro) por los parametros pasados en la lista (segudo parametro) y a continuacion se recuperan los datos de la BD devolviendo una lista con las filas en la que cada elemento es otra lista con las columnas. En el caso de que la lista de parametros (segundo parametro) sea nulo, NO será necesario realizar el paso previo de montar la query final.

Parameters:
sql - Query SQL que quiere ser ejecutada.
params - Lista de parametros que completan la query final que va a ser ejecutada.
Returns:
las filas encontradas en la base de datos en forma de una lista en la que cada elemento es un mapa con la estructura: nombreColumna|valor
Throws:
java.sql.SQLException - si hay errores en el acceso a la base de datos.

executeUpdate

public int executeUpdate(java.util.List updateData,
                         java.lang.String table,
                         java.lang.String where,
                         java.util.List params)
                  throws java.sql.SQLException
Ejecuta una sentencia UPDATE

Parameters:
updateData - Parejas de elementos NOMBRE_COLUMNA / VALOR
table - Tabla sobre la que queremos que se ejecute el update
where - WHERE de la select
params - Lista con los parametros de la parte WHERE del update en el caso de que se utilice una PreparedStatement
Returns:
El numero de columnas afectadas
Throws:
java.sql.SQLException - si hay error al acceder a la base de datos

executeUpdate

public int executeUpdate(java.lang.String updateSQL)
                  throws java.sql.SQLException
Ejecuta una sentencia UPDATE

Parameters:
updateSQL - sql de update
Returns:
El numero de columnas afectadas
Throws:
java.sql.SQLException - si hay error al acceder a la base de datos

executeInsert

public int executeInsert(java.util.List insertData,
                         java.lang.String table,
                         java.util.List params)
                  throws java.sql.SQLException
Ejecuta una sentencia INSERT

Parameters:
insertData - Parejas de elementos NOMBRE_COLUMNA / VALOR
table - Tabla sobre la que queremos que se ejecute el update
params - Lista con los parametros de la parte WHERE del update en el caso de que se utilice una PreparedStatement
Returns:
El numero de columnas afectadas
Throws:
java.sql.SQLException - si hay error al acceder a la base de datos

executeInsert

public int executeInsert(java.lang.String insertSQL)
                  throws java.sql.SQLException
Ejecuta una sentencia INSERT

Parameters:
insertSQL - sql de insercion
Returns:
El numero de columnas afectadas
Throws:
java.sql.SQLException - si hay error al acceder a la base de datos

executeDelete

public int executeDelete(java.lang.String table,
                         java.lang.String where,
                         java.util.List params)
                  throws java.sql.SQLException
Ejecuta una sentencia DELETE

Parameters:
table - Tabla sobre la que se quiere que se ejecute el delete
where - WHERE del delete
Returns:
El string con la sentencia DELETE
Throws:
java.sql.SQLException

executeDelete

public int executeDelete(java.lang.String deleteSQL)
                  throws java.sql.SQLException
Ejecuta una sentencia DELETE

Parameters:
deleteSQL - sql de borrado
Returns:
El string con la sentencia DELETE
Throws:
java.sql.SQLException

executeStatement

public int executeStatement(java.lang.String sql,
                            java.util.List params)
                     throws java.sql.SQLException
Ejecuta un statement en la base de datos a partir de una sentencia SQL a ejecutar y los parámetros a dicha sentencia.

Parameters:
sql - La query a ejecutar
params - Los parametros de la query
Returns:
El numero de filas afectadas por la operacion
Throws:
java.sql.SQLException - si hay algún error en la base de datos

createNewSequence

public boolean createNewSequence(java.lang.String seqName,
                                 long startValue,
                                 int increment)
                          throws java.sql.SQLException
Crea una nueva secuencia en la base de datos

Parameters:
seqName - El nombre de la secuencia
Returns:
True o false dependiendo si se ha creado o no la secuencia
Throws:
java.sql.SQLException

getSequenceNextValue

public long getSequenceNextValue(java.lang.String seqName)
                          throws java.sql.SQLException
Obtiene el siguiente valor de la secuencia cuyo nombre se pasa como parametro

Parameters:
seqName - El nombre de la secuencia
Throws:
java.sql.SQLException

getCLOBWriter

public java.io.Writer getCLOBWriter(java.lang.String tableName,
                                    java.lang.String clobColumnName,
                                    java.util.Map pk)
                             throws java.sql.SQLException
Actualiza una columna tipo CLOB Este método a diferencia de updateCLOB NO requiere tener todo el String con el contenido del CLOB en memoria, sino que a medida que se lee el contenido con un reader, se escribe en el writer devuelto

Parameters:
tableName - El nombre de la tabla que contiene el CLOB
clobColumnName - El nombre de la columna que contiene el clob
pk - La clave primaria de la fila (nombreColumna|valor)
Returns:
El writer al CLOB
Throws:
java.sql.SQLException

updateCLOB

public void updateCLOB(java.lang.String tableName,
                       java.lang.String clobColumnName,
                       java.util.Map pk,
                       java.lang.String newValue)
                throws java.sql.SQLException
Actualiza una columna tipo CBLOB

Parameters:
tableName - El nombre de la tabla que contiene el BLOB
pk - La clave primaria de la fila (nombreColumna|valor)
newValue - El nuevo valor para el CLOB
Throws:
java.sql.SQLException

getBLOBOutputStream

public java.io.OutputStream getBLOBOutputStream(java.lang.String tableName,
                                                java.lang.String blobColumnName,
                                                java.util.Map pk)
                                         throws java.sql.SQLException
Actualiza una columna tipo BLOB Este método a diferencia de updateBLOB NO requiere tener todo el array de bytes con el contenido del CLOB en memoria, sino que a medida que se lee el contenido con un inputStream, se escribe en el outputStream devuelto

Parameters:
tableName - El nombre de la tabla que contiene el BLOB
blobColumnName - El nombre de la columna que contiene el blob
pk - La clave primaria de la fila (nombreColumna|valor)
Returns:
El OutputStream al BLOB
Throws:
java.sql.SQLException

updateBLOB

public void updateBLOB(java.lang.String tableName,
                       java.lang.String blobColumnName,
                       java.util.Map pk,
                       byte[] newValue)
                throws java.sql.SQLException
Actualiza una columna tipo BLOB

Parameters:
tableName - El nombre de la tabla que contiene el BLOB
blobColumnName - El nombre de la columna que contiene el blob
pk - La clave primaria de la fila (nombreColumna|valor)
newValue - El nuevo valor para el BLOB
Throws:
java.sql.SQLException

getCLOBReader

public java.io.Reader getCLOBReader(java.lang.String tableName,
                                    java.lang.String clobColumnName,
                                    java.util.Map pk)
                             throws java.sql.SQLException
Obtiene un reader a una columna tipo CLOB

Parameters:
tableName - El nombre de la tabla que contiene el BLOB
clobColumnName - El nombre de la columna que contiene el blob
pk - La clave primaria de la fila (nombreColumna|valor)
Returns:
El reader al CLOB
Throws:
java.sql.SQLException

loadCLOB

public java.lang.String loadCLOB(java.lang.String tableName,
                                 java.lang.String clobColumnName,
                                 java.util.Map pk)
                          throws java.sql.SQLException
Carga una columna tipo CLOB

Parameters:
tableName - El nombre de la tabla que contiene el BLOB
clobColumnName - El nombre de la columna que contiene el blob
pk - La clave primaria de la fila (nombreColumna|valor)
Returns:
El valor del CLOB
Throws:
java.sql.SQLException

getBLOBInputStream

public java.io.InputStream getBLOBInputStream(java.lang.String tableName,
                                              java.lang.String blobColumnName,
                                              java.util.Map pk)
                                       throws java.sql.SQLException
Obtiene un InputStream a una columna tipo BLOB

Parameters:
tableName - El nombre de la tabla que contiene el BLOB
blobColumnName - El nombre de la columna que contiene el blob
pk - La clave primaria de la fila (nombreColumna|valor)
Throws:
java.sql.SQLException

loadBLOB

public byte[] loadBLOB(java.lang.String tableName,
                       java.lang.String blobColumnName,
                       java.util.Map pk)
                throws java.sql.SQLException
Carga una columna tipo BLOB

Parameters:
tableName - El nombre de la tabla que contiene el BLOB
blobColumnName - El nombre de la columna que contiene el blob
pk - Un mapa con los oid y valores de las columnas de la primary key
Returns:
El valor del BLOB
Throws:
java.sql.SQLException