Bom dia,
gostaria de saber se existe uma maneira para testar se não existem registros ainda no banco de dados, pois preciso cadastrar uma consulta sendo que o cliente é novo.
Obrigado.
Bom dia,
gostaria de saber se existe uma maneira para testar se não existem registros ainda no banco de dados, pois preciso cadastrar uma consulta sendo que o cliente é novo.
Obrigado.
/******************************************************************************
* *
* Faz consuta no bd do ID do ultimo valor inserido na tabela departamento do BD *
* *
*****************************************************************************/
public int encontrarUltimoIDDepartamento() {
Conexao.abrirConexao();
String comando = "SELECT LAST_INSERT_ID(idTotalDepartamento) FROM departamento order by idTotalDepartamento desc limit 1";
int comparaIDDepartamento = 0;
try {
PreparedStatement ps = Conexao.conexao.prepareStatement(comando);
ResultSet rsDados = ps.executeQuery();
System.out.println("t1");
while (rsDados.next()) {
comparaIDDepartamento = rsDados.getInt("LAST_INSERT_ID(idTotalDepartamento)");
}
Conexao.fecharConexao();
} catch (Exception e) {
e.printStackTrace();
}
return comparaIDDepartamento;
}
Este método traz o último ID (chave de identificação ) que representa a última inserção na tabela departamento, se ID = 0, então não há nenhum dado cadastrado nesta tabela.
Ah, verificar o que este método retorna quando nao há nada cadastrado.
Espero ter ajudado!
Não entendi certamente o que seria a sua dúvida.
Mas partindo de que você quer verificar apenas se uma determinada tabela possui dados, poderia usar um count na tabela.
SELECT count(id)
FROM Tabela
Caso o resultado do select seja maior que 0, significa que possui registros.
Cuidado com o tamanho da tabela, pode acarretar erros de performance(Mesmo o BD se organizando com a função count).
]Não entendi certamente o que seria a sua dúvida.
Mas partindo de que você quer verificar apenas se uma determinada tabela possui dados, poderia usar um count na tabela.SELECT count(id) FROM TabelaCaso o resultado do select seja maior que 0, significa que possui registros.
Cuidado com o tamanho da tabela, pode acarretar erros de performance(Mesmo o BD se organizando com a função count).

Tem como você dar um exemplo de um código utilizando isso que você disse?
O código que fiz ficou assim:
String sqlteste = "SELECT count(idcliente) FROM clientes";
try {
ResultSet contagem = con_clientes.s.executeQuery(sqlteste);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Mas quando tento comparar com int dá tipos invalidos. Como faço para ter o retorno da quantidade de tabelas no banco de dados?
Você tem que extrair o resultado do ResultSet. Algo assim:
String sqlteste = "SELECT count(idcliente) as qtd FROM clientes";
try {
ResultSet rs= con_clientes.s.executeQuery(sqlteste);
int quantidade = 0;
if (rs.next()) {
quantidade = rs.getInt("qtd");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Lucas,
para obter a quantidade de linhas afetadas pelo count, vc deve capturar esses dados do ResultSet. Como?
O ResultSet possui métodos para capturar isso.
Para o nosso caso o getInt(), pois o retorno de count é um inteiro com o número de registros encontrados ou existentes.
O método getInt possui duas sobrecargas:
1 - getInt(String columnLabel) -> Onde é passado o nome da coluna (Caso tenha dado nome a ela no select ou saiba o nome que ela virá).
2 - getInt(int index) -> Onde é passado o index da coluna, que no nosso caso é 0 pois so irá vir 1 linha e 1 coluna. É esse que vamos usar.
Ficaria mais ou menos assim:
String sqlteste = "SELECT count(idcliente) FROM clientes";
try {
ResultSet contagem = con_clientes.s.executeQuery(sqlteste);
int qtdRegistros = contagem.getInt(0); //Ou o nome da sua coluna.
if(qtdRegistros >0){
// Existe registros.
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Desculpa qualquer erro, faz muito tempo que não vejo JDBC.
Já ouviu falar de hibernate? Dá uma olhada, pode facilitar bastante a sua vida!
Flws
Já ouvi falar de hibernate, mas nunca baixei ou tentei utilizar. Vou dar uma pesquisada nele.
Muito Obrigado pessoal, foram de grande ajuda :).