Class AppConnection
- All Implemented Interfaces:
Closeable
,AutoCloseable
- Author:
- Sérgio Siegrist
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
Tipo de parâmetro de saída a ser usado quando é cursor Oracle. -
Constructor Summary
ConstructorsConstructorDescriptionInicializa e abre umaConnection
.AppConnection
(AppConnection appConn) Inicializa umaAppConnection
que utiliza a mesmaConnection
que uma outraAppConnection
.AppConnection
(AppConnection conn, String sql) Conveniência para inicializar uma conexão já com um comando SQL.AppConnection
(AppConnection appConn, String query, Object... params) Conveniência para iniciar uma conexão já com um comando SQL e alguns parâmetrosAppConnection
(String query) Conveniência para executar comandos SQL em aplicações web.AppConnection
(String query, int id) Conveniência para executar comandos SQL com um parâmetro numérico em aplicações web.AppConnection
(String query, String id) Conveniência para executar comandos SQL com um parâmetro de texto em aplicações web.AppConnection
(Connection conn) Inicializa umaAppConnection
que utiliza umaConnection
fornecida pela aplicação.AppConnection
(Connection conn, TransactionManager tm) Inicializa umaAppConnection
que utiliza umaConnection
fornecida pela aplicação e umTransactionManager
externo para o caso de utilizar transações gerenciadas por J2EE. -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Deve ser usado ao fim das operações envolvendoAppConnection
para fechar aConnection
.final void
Fecha o comando SQL mapeado na chavekey
e desfaz este mapeamento, se existir.void
Utilidade para lançar umaRuntimeException
qualquer e ao mesmo tempo fechar a conexão de maneira segura, sem ter que fechar a conexão explicitamente ou recorrer a blocosfinally
.void
Fecha a conexão de maneira segura, e lança umaDebugException
que informa qual foi o erro, qual foi o comando SQL e quais foram os parâmetros que geraram a falha.void
commit()
void
boolean
execute()
Executa umCallableStatement
.int
int
int
int
int
int
int
final boolean
Conveniência para executar a consulta e imediatamente retornar o único registro esperado.int
Faz o mesmo queexecuteCheckedUpdate()
, exceto que, se ocorrer uma exceção que não forRuleViolation
, é lançada comoDebugSQLException
para forçar o tratamento.int
Se ocorrer exceção, fecha oStatement
mas não fecha aConnection
.final void
final void
executeQuery
(String query) int
Executa qualquer tipo de comando SQL, lançando os dados do erro que ocorrer, seja ele qual for.int
Se ocorrer exceção, fecha aConnection
e lança aDebugException
correspondente.static int
executeUpdate
(String query, int id) static int
executeUpdate
(String query, int[] ids) static int
executeUpdate
(String query, int[] ints, String[] ids) static int
executeUpdate
(String query, int[] ints0, String[] ids0, int[] ints1, String[] ids1) static int
executeUpdate
(String query, String id) static int
executeUpdate
(String query, String[] ids) final boolean
exists()
Conveniência para verificar se é encontrado um registro, executando a consulta e fechando o statement em um único método.int
forEach
(Consumer<? super AppConnection> action) Processa todos os registros da consulta, aplicando-lhes o consumidor informado.static String
Formata um String como um valor para ser concatenado dentro de um comando SQL.getAmount
(int columnIndex) getAmountNotNull
(int columnIndex) getAmountNotNull
(String columnName) boolean
getBigDecimal
(int columnIndex) getBigDecimal
(String columnName) getBigDecimalNotNull
(int collumnIndex) getBigDecimalNotNull
(String columnName) boolean
getBoolean
(int columnIndex) boolean
getBoolean
(String columnName) byte
getByte
(int columnIndex) byte
byte[]
getBytes
(int columnIndex) byte[]
getClobString
(int columnIndex) Lê uma coluna CLOB comoString
.getClobString
(String columnName) Lê uma coluna CLOB comoString
.getColumns
(String table) final Connection
Retorna a conexão JDBC atualmente em uso por este objeto.double
getCsDouble
(int columnIndex) int
getCsInt
(int columnIndex) getCsString
(int columnIndex) int
Retorna a quantidade de registros que foram lidos até o momento.getDate
(int columnIndex) getDateTime
(int columnIndex) getDateTime
(String columnName) double
getDouble
(int columnIndex) double
float
getFloat
(int columnIndex) float
getInputStream
(int columnIndex) getInputStream
(String columnName) int
getInt
(int columnIndex) int
long
getLong
(int columnIndex) long
getLongString
(int columnIndex) Lê uma coluna LONG comoString
.getLongString
(String columnName) Lê uma coluna LONG comoString
.static AppConnection
getNewJndiConnection
(String jndi) getObject
(int columnIndex) Object[]
Retorna um array contendo todos os parâmetros fornecidos.getQuery()
Retorna o que foi passado por último emsetQuery(String)
ou equivalentes.getReader
(int columnIndex) short
getShort
(int columnIndex) short
final AppConnection
getStatement
(Object key, String sql) Abre e retorna um comando SQL para ser usado em um processo.getString
(int columnIndex) getTime
(int columnIndex) getTimestamp
(int columnIndex) getTimestamp
(String columnName) <X extends Throwable>
voidifPresentThrow
(Function<? super AppConnection, ? extends X> exceptionSupplier) Conveniência para, de uma só vez, executar a consulta, abrir o único registro e lançar uma Exception com base nesse registro se houver, fechando a consulta.boolean
Executa um comando INSERT, e fecha o statement, sem gerar erro caso ocorra tentativa de violação de chave primária.boolean
isClosed()
<T> Optional<T>
map
(Function<? super AppConnection, T> mapper) Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar um valor com base nesse registro, fechando a consulta.static Connection
Retorna uma nova conexão JDBC conforme as regras desta classe, sem ter que instanciar umaAppConnection
.boolean
next()
void
prepareCall
(String sql) Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta e retornando nulo se não houver registro.readAmount
(Amount defVal) Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta e retornando o valor default se não houver registro.Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta.Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta e retornando nulo se não houver registro.readBigDecimal
(BigDecimal defVal) Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta e retornando o valor default se não houver registro.Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta.readDate()
Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta.Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta e retornando nulo se não houver registro.readDouble
(Double defVal) Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta e retornando o valor default se não houver registro.double
Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta.Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta e retornando nulo se não houver registro.readInteger
(Integer defVal) Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta e retornando o valor default se não houver registro.int
Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta.<T> T
Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar um valor com base nesse registro, fechando a consulta.Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta e retornando nulo se não houver registro.readString
(String defVal) Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta e retornando o valor default se não houver registro.Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta.void
void
registerOutParameter
(int parameterIndex, int sqlType) void
rollback()
Executa rollback numa transação controlada pela aplicação.void
void
setAutoCommit
(boolean autoCommit) ExecutasetAutoCommit
naConnection
.void
setBigDecimal
(int parameterIndex, BigDecimal x) void
setBytes
(int parameterIndex, byte[] bytes) void
void
setDateTime
(int parameterIndex, Date x) void
setDouble
(int parameterIndex, double x) final void
setFetchSize
(int rows) Faz o mesmo que o método do mesmo nome emjava.sql.Statement
: reserva memória para recuperar certa quantidade de registros.void
setFloat
(int parameterIndex, float x) final void
setInt
(int parameterIndex, int x) void
setLong
(int parameterIndex, long x) void
setNull
(int parameterIndex, int sqlType) É preciso informar o tipo sql conformejava.sql.Types
.void
void
setPersistOnSQLException
(boolean persist) Define se a conexão deve permanecer aberta após a ocorrência de erros de banco.final void
final void
void
void
setUpdateableQuery
(String query) <R> R
stream
(Function<Stream<AppConnection>, R> streamHandler) Processa todos os registros da consulta, usando um stream.void
boolean
wasNull()
-
Field Details
-
ORACLE_TYPES_CURSOR
public static final int ORACLE_TYPES_CURSORTipo de parâmetro de saída a ser usado quando é cursor Oracle.- See Also:
-
-
Constructor Details
-
AppConnection
public AppConnection()Inicializa e abre umaConnection
. Esta pode se tornar a "root" para outrasAppConnection
s derivadas. -
AppConnection
Inicializa umaAppConnection
que utiliza a mesmaConnection
que uma outraAppConnection
. Armazena uma referência ao conjunto de statements abertas pelaAppConnection
"root". -
AppConnection
Conveniência para inicializar uma conexão já com um comando SQL. Deixa o statement aberto para receber parâmetros e ser executado. -
AppConnection
Conveniência para iniciar uma conexão já com um comando SQL e alguns parâmetros- Parameters:
appConn
- A conexão rootquery
- A query sqlparams
- os parâmetros da query
-
AppConnection
Inicializa umaAppConnection
que utiliza umaConnection
fornecida pela aplicação e umTransactionManager
externo para o caso de utilizar transações gerenciadas por J2EE. Esta pode se tornar a "root" para outrasAppConnection
s derivadas. -
AppConnection
Inicializa umaAppConnection
que utiliza umaConnection
fornecida pela aplicação. Esta pode se tornar a "root" para outrasAppConnection
s derivadas. -
AppConnection
Conveniência para executar comandos SQL em aplicações web. Já executa o comando e o deixa aberto para ser acessado depois. -
AppConnection
Conveniência para executar comandos SQL com um parâmetro numérico em aplicações web. Já executa o comando e o deixa aberto para ser acessado depois. -
AppConnection
Conveniência para executar comandos SQL com um parâmetro de texto em aplicações web. Já executa o comando e o deixa aberto para ser acessado depois.
-
-
Method Details
-
getQuery
Retorna o que foi passado por último emsetQuery(String)
ou equivalentes. -
getParams
Retorna um array contendo todos os parâmetros fornecidos. -
getConnection
Retorna a conexão JDBC atualmente em uso por este objeto. -
getNewJndiConnection
-
newConnection
Retorna uma nova conexão JDBC conforme as regras desta classe, sem ter que instanciar umaAppConnection
. -
setPersistOnSQLException
public void setPersistOnSQLException(boolean persist) Define se a conexão deve permanecer aberta após a ocorrência de erros de banco. Por padrão, a conexão é fechada, o que é conveniente em puras aplicações web.Se esta opção for ativada, na ocorrência de erros será fechada apenas a
AppConnection
atual, e será forçado rollback. AsAppConnection
s ancestrais permanecem como estão. -
setAutoCommit
public void setAutoCommit(boolean autoCommit) ExecutasetAutoCommit
naConnection
. SeautoCommit
forfalse
, inicia uma transação. -
getAutoCommit
public boolean getAutoCommit() -
commit
public void commit() -
rollback
public void rollback()Executa rollback numa transação controlada pela aplicação. LançaDebugException
se falhar. -
close
public void close()Deve ser usado ao fim das operações envolvendoAppConnection
para fechar aConnection
. Se for executado na "root", fecha todos osStatement
s que estiverem abertos. Este método não executa automaticamentecommit
ourollback
.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
-
next
public boolean next() -
getCurrentRecordCount
public int getCurrentRecordCount()Retorna a quantidade de registros que foram lidos até o momento. Esse valor fica disponível mesmo depois do statement já ter sido fechado.É uma comodidade após a leitura dos registros, para verificar se a consulta trouxe registros.
- Returns:
- a quantidade de registros que foram lidos até o momento
-
setQuery
-
setUpdateableQuery
-
prepareCall
-
closeAndThrow
Fecha a conexão de maneira segura, e lança umaDebugException
que informa qual foi o erro, qual foi o comando SQL e quais foram os parâmetros que geraram a falha.Também é usado internamente se ocorrer algum
SQLException
genérico de acesso ao banco.Se estava no meio de uma transação, a
Connection
é passada automaticamente para o modo auto-commit.- Throws:
DebugException
-
closeAndThrow
Utilidade para lançar umaRuntimeException
qualquer e ao mesmo tempo fechar a conexão de maneira segura, sem ter que fechar a conexão explicitamente ou recorrer a blocosfinally
.Se estava no meio de uma transação, a
Connection
é passada automaticamente para o modo auto-commit.- Throws:
RuntimeException
-
registerOutParameter
public void registerOutParameter(int parameterIndex, int sqlType) -
setNull
public void setNull(int parameterIndex, int sqlType) É preciso informar o tipo sql conformejava.sql.Types
. -
setInt
public final void setInt(int parameterIndex, int x) -
setLong
public void setLong(int parameterIndex, long x) -
setDouble
public void setDouble(int parameterIndex, double x) -
setFloat
public void setFloat(int parameterIndex, float x) -
setBigDecimal
-
setAmount
-
setString
-
setDateTime
-
setDate
-
setTime
-
setObject
-
setBytes
public void setBytes(int parameterIndex, byte[] bytes) -
getBoolean
public boolean getBoolean(int columnIndex) -
getBoolean
-
getByte
public byte getByte(int columnIndex) -
getByte
-
getShort
public short getShort(int columnIndex) -
getShort
-
getInt
public int getInt(int columnIndex) -
getCsInt
public int getCsInt(int columnIndex) -
getInt
-
getLong
public long getLong(int columnIndex) -
getLong
-
getCsDouble
public double getCsDouble(int columnIndex) -
getDouble
public double getDouble(int columnIndex) -
getDouble
-
getFloat
public float getFloat(int columnIndex) -
getFloat
-
getDateTime
-
getDateTime
-
getDate
-
getDate
-
getTime
-
getTime
-
getTimestamp
-
getTimestamp
-
getBigDecimal
-
getBigDecimal
-
getBigDecimalNotNull
-
getBigDecimalNotNull
-
getAmount
-
getAmount
-
getAmountNotNull
-
getAmountNotNull
-
getString
-
getCsString
-
getString
-
getBytes
public byte[] getBytes(int columnIndex) -
getBytes
-
getInputStream
-
getInputStream
-
getReader
-
getReader
-
getClobString
Lê uma coluna CLOB comoString
.- Parameters:
columnIndex
- a coluna- Returns:
- o conteúdo da coluna como
String
-
getClobString
Lê uma coluna CLOB comoString
.- Parameters:
columnName
- a coluna- Returns:
- o conteúdo da coluna como
String
-
getLongString
Lê uma coluna LONG comoString
.(A Oracle recomenda não usar esse tipo de coluna.)
- Parameters:
columnIndex
- a coluna- Returns:
- o conteúdo da coluna como
String
-
getLongString
Lê uma coluna LONG comoString
.(A Oracle recomenda não usar esse tipo de coluna.)
- Parameters:
columnName
- a coluna- Returns:
- o conteúdo da coluna como
String
, ou um texto vazio se estiver nulo
-
getObject
-
getObject
-
getObject
-
getObject
-
wasNull
public boolean wasNull() -
executeCheckedUpdate
public int executeCheckedUpdate() throws UniqueViolation, NotNullViolation, CheckViolation, ParentKeyViolation, ChildRecordViolation, CustomViolation, RuleViolationSe ocorrer exceção, fecha oStatement
mas não fecha aConnection
. Isto permite que a exceção seja tratada e aConnection
continue sendo utilizada. Isto também exige que aConnection
seja fechada externamente num blocofinally
.Se alguma
RuleViolation
não for tratada, então pode-se lançar aDebugException
correspondente de maneira segura executandocloseAndThrow(e)
. -
executeCheckedSQL
public int executeCheckedSQL() throws UniqueViolation, NotNullViolation, CheckViolation, ParentKeyViolation, ChildRecordViolation, CustomViolation, RuleViolation, DebugSQLExceptionFaz o mesmo queexecuteCheckedUpdate()
, exceto que, se ocorrer uma exceção que não forRuleViolation
, é lançada comoDebugSQLException
para forçar o tratamento. -
insertUnique
public boolean insertUnique()Executa um comando INSERT, e fecha o statement, sem gerar erro caso ocorra tentativa de violação de chave primária.Se o comando não for INSERT, o funcionamento não está definido - mas provavelmente funcionará como um
executeUpdate()
seguido declose()
. Deve ser usado somente se o comando for INSERT.Uso típico:
AppConnection cn = new AppConnection(conn); cn.setQuery("INSERT INTO etc..."); cn.setParâmetros...; if(!cn.insertUnique()) { // Executar update... } // Não é preciso fazer close();
- Returns:
- se a inserção foi feita com sucesso
-
executeSQL
Executa qualquer tipo de comando SQL, lançando os dados do erro que ocorrer, seja ele qual for.- Returns:
- a quantidade de linhas afetadas pela execução, ou -1 se não for o caso.
- Throws:
DebugSQLException
-
executeUpdate
Se ocorrer exceção, fecha aConnection
e lança aDebugException
correspondente. Se precisar reaproveitar aConnection
após tratar aDebugException
, utilizeexecuteCheckedUpdate
em vez deste.- Throws:
DebugException
-
executeAndNext1
public final boolean executeAndNext1()Conveniência para executar a consulta e imediatamente retornar o único registro esperado. Otimiza a memória reservada para receber só 1 registro. É útil para consultas pela chave primária ou que só verificam a existência de um registro ou que geram somente uma linha de totais gerais.- Returns:
- se há registro. O mesmo que
next()
-
exists
public final boolean exists()Conveniência para verificar se é encontrado um registro, executando a consulta e fechando o statement em um único método.- Returns:
- se foi encontrado um registro
-
setFetchSize
public final void setFetchSize(int rows) Faz o mesmo que o método do mesmo nome emjava.sql.Statement
: reserva memória para recuperar certa quantidade de registros. É uma dica para aumentar o desempenho da consulta ou economizar memória quando se sabe quantos registros são esperados. -
executeQuery
public final void executeQuery() -
executeQuery
-
execute
public boolean execute()Executa umCallableStatement
.- Returns:
- o resultado de
java.sql.PreparedStatement.execute()
, isto é, se foi obtido um conjunto de registros de uma consulta.
-
updateRow
public void updateRow() -
deleteRow
public void deleteRow() -
execute
-
execute
-
executeUpdate
-
execute
-
executeUpdate
-
execute
-
executeUpdate
-
execute
-
executeUpdate
-
execute
-
executeUpdate
-
execute
-
executeUpdate
-
formatString
Formata um String como um valor para ser concatenado dentro de um comando SQL. Coloca aspas simples ao redor do valor, e faz "escape" de caracteres de aspas simples que existirem dentro do valor.- Returns:
- o valor formatado entre aspas simples, ou "NULL" se for nulo ou vazio
-
isClosed
public boolean isClosed() -
refreshRow
public void refreshRow() -
getStatement
Abre e retorna um comando SQL para ser usado em um processo. Ele fica mapeado na chavekey
memorizado para ser reaproveitado no mesmo processo. Assim, um novo comando SQL só é criado se já não existir algum mapeado na mesma chave (não importa qual seja o real conteúdo desql
) e fica disponível enquanto não for fechado usandoclose(java.lang.Object)
.- Parameters:
key
- uma chave de fácil memorização para distinguir este comando SQL de outros usados no processosql
- o comando SQL que será usado para abrir um novo comando (statement)- Returns:
- o comando existente associado a
key
ou, se não existir, um novo comando associado akey
-
close
Fecha o comando SQL mapeado na chavekey
e desfaz este mapeamento, se existir.- Parameters:
key
- a chave na qual o comando SQL está mapeado.
-
readIntNotNull
public int readIntNotNull()Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta.- Returns:
- o valor lido, ou 0 se não houver registro
-
readInteger
Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta e retornando nulo se não houver registro.- Returns:
- o valor lido, ou nulo se não houver registro
-
readInteger
Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta e retornando o valor default se não houver registro.- Returns:
- o valor lido, ou
defVal
se não houver registro
-
readDoubleNotNull
public double readDoubleNotNull()Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta.- Returns:
- o valor lido, ou 0.0 se não houver registro
-
readDouble
Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta e retornando nulo se não houver registro.- Returns:
- o valor lido, ou nulo se não houver registro
-
readDouble
Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta e retornando o valor default se não houver registro.- Returns:
- o valor lido, ou
defVal
se não houver registro
-
readStringNotNull
Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta.- Returns:
- o valor lido, ou vazio se não houver registro. Nunca retorna nulo.
-
readString
Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta e retornando nulo se não houver registro.- Returns:
- o valor lido, ou nulo se não houver registro
-
readString
Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta e retornando o valor default se não houver registro.- Returns:
- o valor lido, ou
defVal
se não houver registro
-
readDate
Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta.- Returns:
- o valor lido, ou nulo se não houver registro
-
readBigDecimalNotNull
Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta.- Returns:
- o valor lido, ou
BigDecimal.ZERO
se não houver registro. Se o valor lido for nulo, retornaBigDecimal.ZERO
. Nunca retorna nulo.
-
readBigDecimal
Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta e retornando nulo se não houver registro.- Returns:
- o valor lido, ou nulo se não houver registro.
Se o valor lido for nulo, retorna
BigDecimal.ZERO
.
-
readBigDecimal
Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta e retornando o valor default se não houver registro.- Returns:
- o valor lido, ou
defVal
se não houver registro Se o valor lido for nulo, retornaBigDecimal.ZERO
.
-
readAmountNotNull
Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta.- Returns:
- o valor lido, ou
Amount.ZERO
se não houver registro. Se o valor lido for nulo, retornaAmount.ZERO
. Nunca retorna nulo.
-
readAmount
Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta e retornando nulo se não houver registro.- Returns:
- o valor lido, ou nulo se não houver registro.
Se o valor lido for nulo, retorna
Amount.ZERO
.
-
readAmount
Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar o valor da única coluna, fechando a consulta e retornando o valor default se não houver registro.- Returns:
- o valor lido, ou
defVal
se não houver registro Se o valor lido for nulo, retornaAmount.ZERO
.
-
readOne
Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar um valor com base nesse registro, fechando a consulta.- Type Parameters:
T
- o tipo do objeto a ser retornado- Parameters:
maker
- o "maker" que converte um registro em um objeto com valores- Returns:
- o valor lido, ou nulo se não houver registro ou se o "maker" utilizado permitir retorno nulo. Se o "maker" utilizado não permitir nulo, o retorno nulo indica que não há registro.
-
map
Conveniência para, de uma só vez, executar a consulta, ler o único registro e retornar um valor com base nesse registro, fechando a consulta.É muito semelhante a
readOne(Maker)
, aceitando uma função genérica e retornando um Optional.Importante: Após o retorno, esta consulta estará fechada. Não será possível obter mais dados por ela.
- Type Parameters:
T
- o tipo do objeto a ser retornado- Parameters:
mapper
- a função que converte um registro em um objeto com valores- Returns:
- o valor lido, ou nulo se não houver registro ou se a função utilizada permitir retorno nulo. Se a função utilizada não permitir nulo, o retorno nulo indica que não há registro.
-
ifPresentThrow
public <X extends Throwable> void ifPresentThrow(Function<? super AppConnection, ? extends X> exceptionSupplier) throws XConveniência para, de uma só vez, executar a consulta, abrir o único registro e lançar uma Exception com base nesse registro se houver, fechando a consulta.Importante: Após o retorno, esta consulta estará fechada. Não será possível obter mais dados por ela.
- Type Parameters:
X
- o tipo da Exception que será lançada- Parameters:
exceptionSupplier
- a função que lê o registro atual e com base nele retorna uma Exception que será lançada. Se retornar null, não lançará nada.- Throws:
X
- se oexceptionSupplier
retornar algo a lançar
-
forEach
Processa todos os registros da consulta, aplicando-lhes o consumidor informado. Assegura o fechamento do cursor.É a maneira mais simples de processar um SELECT.
- Parameters:
action
- o consumidor de registros- Returns:
- a quantidade de registros processados
-
stream
Processa todos os registros da consulta, usando um stream. Assegura o fechamento do cursor.- Type Parameters:
R
- o tipo do retorno, que pode ser: uma contagem, uma soma, um valor selecionado, qualquer coisa, geralmente como resultado do processamento do stream.- Parameters:
streamHandler
- uma função que processa o stream de registros e retorna um resultado. Se não houver nada a retornar, deve retornar pelo menos null.- Returns:
- o resultado do processamento do stream
-
getColumns
- Returns:
- uma lista com as colunas de uma tabela
- Throws:
DebugException
-
getMetaData
- Returns:
- o MetaData do ResultSet
-