Fórum Como utilizar ResultSet next(); previous(); last(); e first(); #567123
06/10/2011
0
//*****MÉTODO RESPONSÁVEL POR CONSULTAR DADOS NAS TABELAS usuario do BD e Usuario.java(getters e setters) do Sistema*****
public List selecionar(tabelas.Usuario cadast) throws SQLException, Exception {
//CRIA O PREPAREDSTATEMENT:
PreparedStatement sqls;
sqls = this.conessao.prepareStatement("SELECT * FROM usuario WHERE nome LIKE ?",ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
sqls.setString(1, "%" + TelaUsuario.tx_pesquisa.getText() + "%");
//O coringa "%" deve ser colocado no PreparedStatement e não na string SQL,
//pois é ele quem vai trabalhar com os dados da consulta. Você pode colocar somente um coringa, pode trocar a posição dele(s), etc...
//O ResultSet RS recebe os dados da consulta:
RS = sqls.executeQuery();
//Se nenhum dado for encontrado retorna mensagem, limpa os campos e gera exceção:
if (!RS.next()) {
JOptionPane.showMessageDialog(null, "Nenhum registro foi encontrado com essa pesquisa!");
TelaUsuario.tx_nome.setText(null);
TelaUsuario.tx_login.setText(null);
TelaUsuario.tx_senha.setText(null);
TelaUsuario.tx_idusuario.setText(null);
TelaUsuario.tx_pesquisa.setText(null);//Limpa o campo Pesquisa.
TelaUsuario.tx_pesquisa.requestFocusInWindow();//Seta o cursor no campo Pesquisa.*/
throw new Exception("Nenhum registro foi encontrado com essa pesquisa!");
}
else {
//SENÃO CRIA O OBJETO LISTACONTATO DO TIPO LIST QUE ARMAZENARÁ OS REGISTROS RETORNADOS:
List<tabelas.Usuario> listacontato = new ArrayList<tabelas.Usuario>();
//Instanciando o objeto cadast:
cadast.setId_Usuario(RS.getInt("id_usuario"));
cadast.setNome(RS.getString("nome"));
cadast.setLogin(RS.getString("login"));
cadast.setSenha(RS.getString("senha"));
cadast.setNivelAcesso(RS.getObject("nivelacesso"));
cadast.setStatus(RS.getObject("status"));
//Inserindo dados na lista
listacontato.add(cadast);
//Fecha o ResultSet:
//RS.close();
//Fecha o PreparedStatement:
//sqls.close();
//Retorna os dados:
return listacontato;
}
}
//Código do botão BUSCAR:
private void bt_pesquisaActionPerformed(java.awt.event.ActionEvent evt) {
int id_usuario = 0;
String nome = null;
String login = null;
String senha = null;
Object nivelacesso = null;
Object status = null;
// TODO add your handling code here:
try {
//UsuarioDoom doom = new UsuarioDoom(); Esses objetos você pode implementar aqui ou no início da classe.
//Usuario cadastro = new Usuario(); Optei por implementar no início(preguiça de digitar).
//Se o campo pesquisa estiver em branco ou nulo mostra a mensagem:
if (tx_pesquisa.getText().equals("")|| tx_pesquisa.getText() == null){
JOptionPane.showMessageDialog(this, "Acha que sou adivinho?\n Digite alguma coisa!");
tx_pesquisa.requestFocusInWindow();//Seta o cursor no campo Pesquisa.
}
//Senão executa a consulta:
else {
//CHAMANDO O MÉTODO QUE PESQUISA DADOS:
doom.selecionar(cadastro);
//Cria o objeto listacadastro que recebe os dados do método 'selecionar':
List<Usuario> listaCadastro = doom.selecionar(cadastro);
for (Usuario cursor : listaCadastro) {
id_usuario = (cursor.getId_Usuario());
nome = (cursor.getNome());
login = (cursor.getLogin());
senha = (cursor.getSenha());
nivelacesso = (cursor.getNivelAcesso());
status = (cursor.getStatus());
}
//Pega os dados e mostra nos campos da TelaUsuario(aqui nesse 'else' poderia ter criado um método e chamado pelo nome):
tx_idusuario.setText(Integer.toString(id_usuario));
tx_nome.setText(nome);
tx_login.setText(login);
tx_senha.setText(senha);
cb_nivelacesso.setSelectedItem(nivelacesso);
cb_status.setSelectedItem(status);
tx_pesquisa.setText(null);//Limpa o campo Pesquisa.
tx_pesquisa.requestFocusInWindow();//Seta o cursor no campo Pesquisa.
}
} catch (Exception ex) {
Logger.getLogger(TelaUsuario.class.getName()).log(Level.SEVERE, null, ex);
}
}
//Botão Primeiro:
private void btprimeiroActionPerformed(java.awt.event.ActionEvent evt) {
try {
//UsuarioDoom doom = new UsuarioDoom();
if (tx_nome.getText().equals("")|| tx_nome.getText() == null){
JOptionPane.showMessageDialog(this, "Faça uma pesquisa primeiro!");
tx_pesquisa.requestFocusInWindow();//Seta o cursor no campo Pesquisa.
}
else {
if (doom.RS.isFirst() == true) {
JOptionPane.showMessageDialog(this, "Este é o primeiro registro da pesquisa feita!");
doom.RS.first();
}
else {
doom.RS.next();
doom.RS.first();
mostrar_dados();
}
}
}
catch (SQLException erro) {
Logger.getLogger(TelaUsuario.class.getName()).log(Level.SEVERE, null, erro);
JOptionPane.showMessageDialog(this,"Este é o primeiro registro." + erro);
}
}
//Botão Anterior:
private void btanteriorActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
//UsuarioDoom doom = new UsuarioDoom();
if (tx_nome.getText().equals("")|| tx_nome.getText() == null){
JOptionPane.showMessageDialog(this, "Faça uma pesquisa primeiro!");
tx_pesquisa.requestFocusInWindow();//Seta o cursor no campo Pesquisa.
}
else {
if (doom.RS.isFirst() == true) {
JOptionPane.showMessageDialog(this, "Este é o primeiro registro da pesquisa feita!");
doom.RS.first();
}
else {
doom.RS.isFirst();
doom.RS.previous();
mostrar_dados();
}
}
}
catch (SQLException erro) {
JOptionPane.showMessageDialog(this, " Não foi possível ir para o registro anterior. " + erro);
}
}
//Botão Próximo:
private void btproximoActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
//UsuarioDoom doom = new UsuarioDoom();
if (tx_nome.getText().equals("")|| tx_nome.getText() == null){
JOptionPane.showMessageDialog(this, "Faça uma pesquisa primeiro!");
tx_pesquisa.requestFocusInWindow();//Seta o cursor no campo Pesquisa.
}
else {
if (doom.RS.isLast() == true) {
JOptionPane.showMessageDialog(this, "Este é o último registro da pesquisa feita!");
doom.RS.last();
}
else {
doom.RS.isLast();
doom.RS.next();
mostrar_dados();
}
}
}
catch (SQLException erro) {
JOptionPane.showMessageDialog(this, " Não foi possível ir para o próximo registro. " + erro);
}
}
//Botão Último:
private void btultimoActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
//UsuarioDoom doom = new UsuarioDoom();
if (tx_nome.getText().equals("")|| tx_nome.getText() == null){
JOptionPane.showMessageDialog(this, "Faça uma pesquisa primeiro!");
tx_pesquisa.requestFocusInWindow();//Seta o cursor no campo Pesquisa.
}
else {
if (doom.RS.isLast() == true) {
JOptionPane.showMessageDialog(this, "Este é o último registro da pesquisa feita!");
}
else {
doom.RS.last();
mostrar_dados();
}
}
}
catch (SQLException erro) {
JOptionPane.showMessageDialog(this, " Não foi possível ir para o próximo registro. " + erro);
}
}
//MÉTODO QUE MOSTRA OS DADOS AO SE NAVEGAR PELOS BOTÕES 'PRIMEIRO, ANTERIOR, PRÓXIMO E ÚLTIMO':
public void mostrar_dados() throws SQLException {
try { //Tente:
//Pegar os dados e mostrar nos campos da TelaUsuário:
tx_idusuario.setText(doom.RS.getString("id_usuario"));
tx_nome.setText(doom.RS.getString("nome"));
tx_login.setText(doom.RS.getString("login"));
tx_senha.setText(doom.RS.getString("senha"));
cb_nivelacesso.setSelectedItem(doom.RS.getObject("nivelacesso"));
cb_status.setSelectedItem(doom.RS.getObject("status"));
} catch (SQLException erro) { //Ou capture o que acontecer(exceções):
JOptionPane.showMessageDialog(this, " Não localizou dados!" + erro);
}
}
//Classe Usuario
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package tabelas;
/**@author sarnento
* Esta classe cria a tabela Usuario.java que implementa os getters e os setters
* e armazena temporariamente os dados vindos do BD.
*
*/
public class Usuario {
public int id_usuario;
public String nome;
public String login;
public String senha;
public Object nivelacesso;
public Object status;
// Métodos get e set para id_usuario, nome, login, senha, nivelacesso e status.
public int getId_Usuario() {
return id_usuario;
}
public void setId_Usuario(int id_usuario) {
this.id_usuario = id_usuario;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public Object getNivelAcesso() {
return nivelacesso;
}
public void setNivelAcesso(Object nivelacesso) {
this.nivelacesso = nivelacesso;
}
public Object getStatus() {
return status;
}
public void setStatus(Object status) {
this.status = status;
}
}
Julio Henrique
Curtir tópico
+ 0Posts
17/10/2011
Julio Henrique
Gostei + 0
17/10/2011
Douglas Eric
Gostei + 0
17/10/2011
Douglas Eric
//*****MÉTODO RESPONSÁVEL POR CONSULTAR DADOS NAS TABELAS usuario do BD e Usuario.java(getters e setters) do Sistema*****
public List selecionar(tabelas.Usuario cadast) throws SQLException, Exception {
//CRIA O PREPAREDSTATEMENT:
PreparedStatement sqls;
sqls = this.conessao.prepareStatement("SELECT * FROM usuario WHERE nome LIKE ?",ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
sqls.setString(1, TelaUsuario.tx_pesquisa.getText());
//O ResultSet RS recebe os dados da consulta:
RS = sqls.executeQuery();
//Se nenhum dado for encontrado retorna mensagem, limpa os campos e gera exceção:
if (!RS.next()) {
JOptionPane.showMessageDialog(null, "Nenhum registro foi encontrado com esse nome!");
TelaUsuario.tx_nome.setText(null);
TelaUsuario.tx_login.setText(null);
TelaUsuario.tx_senha.setText(null);
TelaUsuario.tx_idusuario.setText(null);
TelaUsuario.tx_pesquisa.setText(null);//Limpa o campo Pesquisa.
TelaUsuario.tx_pesquisa.requestFocusInWindow();//Seta o cursor no campo Pesquisa.*/
throw new Exception("Nenhum registro foi encontrado com esse nome!");
}
else {
//SENÃO CRIA O OBJETO LISTACONTATO DO TIPO LIST QUE ARMAZENARÁ OS REGISTROS RETORNADOS:
List<tabelas.Usuario> listacontato = new ArrayList<tabelas.Usuario>();
//Instanciando o objeto cadast:
cadast.setId_Usuario(RS.getInt("id_usuario"));
cadast.setNome(RS.getString("nome"));
cadast.setLogin(RS.getString("login"));
cadast.setSenha(RS.getString("senha"));
cadast.setNivelAcesso(RS.getObject("nivelacesso"));
cadast.setStatus(RS.getObject("status"));
//Inserindo dados na lista
listacontato.add(cadast);
//Fecha o ResultSet:
//RS.close();
//Fecha o PreparedStatement:
//sqls.close();
//Retorna os dados:
return listacontato;
}
}
//Código do botão PESQUISA:
private void bt_pesquisaActionPerformed(java.awt.event.ActionEvent evt) {
int id_usuario = 0;
String nome = null;
String login = null;
String senha = null;
Object nivelacesso = null;
Object status = null;
// TODO add your handling code here:
try {
//UsuarioDoom doom = new UsuarioDoom(); Esses objetos você pode implementar aqui ou no início da classe.
//Usuario cadastro = new Usuario(); Optei por implementar no início(preguiça de digitar).
//Se o campo pesquisa estiver em branco ou nulo mostra a mensagem:
if (tx_pesquisa.getText().equals("")|| tx_pesquisa.getText() == null){
JOptionPane.showMessageDialog(this, "Acha que sou adivinho?\n Digite um nome!");
tx_pesquisa.requestFocusInWindow();//Seta o cursor no campo Pesquisa.
}
//Senão executa a consulta:
else {
//CHAMANDO O MÉTODO QUE PESQUISA DADOS:
doom.selecionar(cadastro);
//Cria o objeto listacadastro que recebe os dados do método 'selecionar':
List<Usuario> listaCadastro = doom.selecionar(cadastro);
for (Usuario cursor : listaCadastro) {
id_usuario = (cursor.getId_Usuario());
nome = (cursor.getNome());
login = (cursor.getLogin());
senha = (cursor.getSenha());
nivelacesso = (cursor.getNivelAcesso());
status = (cursor.getStatus());
}
//Pega os dados e mostra nos campos da TelaUsuario(aqui nesse 'else' poderia ter criado um método e chamado pelo nome):
tx_idusuario.setText(Integer.toString(id_usuario));
tx_nome.setText(nome);
tx_login.setText(login);
tx_senha.setText(senha);
cb_nivelacesso.setSelectedItem(nivelacesso);
cb_status.setSelectedItem(status);
tx_pesquisa.setText(null);//Limpa o campo Pesquisa.
tx_pesquisa.requestFocusInWindow();//Seta o cursor no campo Pesquisa.
}
} catch (Exception ex) {
Logger.getLogger(TelaUsuario.class.getName()).log(Level.SEVERE, null, ex);
}
}
//Botão Primeiro:
private void btprimeiroActionPerformed(java.awt.event.ActionEvent evt) {
try {
//UsuarioDoom doom = new UsuarioDoom();
if (tx_nome.getText().equals("")|| tx_nome.getText() == null){
JOptionPane.showMessageDialog(this, "Faça uma pesquisa primeiro!");
TelaUsuario.tx_pesquisa.requestFocusInWindow();//Seta o cursor no campo Pesquisa.
}
else {
doom.RS.next();
doom.RS.first();
mostrar_dados();
navega = 1;
}
} catch (SQLException erro) {
Logger.getLogger(TelaUsuario.class.getName()).log(Level.SEVERE, null, erro);
JOptionPane.showMessageDialog(this,"Este é o primeiro registro." + erro);
}
}
//Botão Anterior:
private void btanteriorActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
//UsuarioDoom doom = new UsuarioDoom();
if (tx_nome.getText().equals("")|| tx_nome.getText() == null){
JOptionPane.showMessageDialog(this, "Faça uma pesquisa primeiro!");
TelaUsuario.tx_pesquisa.requestFocusInWindow();//Seta o cursor no campo Pesquisa.
}
else {
doom.RS.isFirst();
doom.RS.previous();
mostrar_dados();
navega = 1;
}
} catch (SQLException erro) {
JOptionPane.showMessageDialog(this, " Não foi possível ir para o registro anterior. " + erro);
}
}
//Botão Próximo:
private void btproximoActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
//UsuarioDoom doom = new UsuarioDoom();
if (tx_nome.getText().equals("")|| tx_nome.getText() == null){
JOptionPane.showMessageDialog(this, "Faça uma pesquisa primeiro!");
TelaUsuario.tx_pesquisa.requestFocusInWindow();//Seta o cursor no campo Pesquisa.
}
else {
doom.RS.isLast();
doom.RS.next();
mostrar_dados();
navega = 2;
}
} catch (SQLException erro) {
JOptionPane.showMessageDialog(this, " Não foi possível ir para o próximo registro. " + erro);
}
}
//Botão Último:
private void btultimoActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
//UsuarioDoom doom = new UsuarioDoom();
if (tx_nome.getText().equals("")|| tx_nome.getText() == null){
JOptionPane.showMessageDialog(this, "Faça uma pesquisa primeiro!");
TelaUsuario.tx_pesquisa.requestFocusInWindow();//Seta o cursor no campo Pesquisa.
}
else {
doom.RS.last();
mostrar_dados();
navega = 2;
}
} catch (SQLException erro) {
JOptionPane.showMessageDialog(this, " Não foi possível ir para o próximo registro. " + erro);
}
}
//MÉTODO QUE MOSTRA OS DADOS AO SE NAVEGAR PELOS BOTÕES 'PRIMEIRO, ANTERIOR, PRÓXIMO E ÚLTIMO':
public void mostrar_dados() throws SQLException {
try { //Tente:
//UsuarioDoom doom = new UsuarioDoom();
//Pegar os dados e mostrar nos campos da TelaUsuário:
tx_idusuario.setText(doom.RS.getString("id_usuario"));
tx_nome.setText(doom.RS.getString("nome"));
tx_login.setText(doom.RS.getString("login"));
tx_senha.setText(doom.RS.getString("senha"));
cb_nivelacesso.setSelectedItem(doom.RS.getObject("nivelacesso"));
cb_status.setSelectedItem(doom.RS.getObject("status"));
} catch (SQLException erro) { //Ou capture o que acontecer(exceções):
if (navega == 1) {
JOptionPane.showMessageDialog(this, "Este é o primeiro registro com esse nome!");
doom.RS.first();//Aqui posiciona o ResultSet para evitar clicar duas vezes no botão 'próximo' quando está no primeiro registro.
} else if (navega == 2) {
JOptionPane.showMessageDialog(this, "Este é o último registro com esse nome!");
doom.RS.last();//Aqui posiciona o ResultSet para evitar clicar duas vezes no botão 'anterior' quando está no último registro.
} else {
JOptionPane.showMessageDialog(this, " Não localizou dados. ERRO: " + erro);
}
navega = 0;
}
}