boa tarde gente…
na classe abaixo eu tenho o metodo “update”
que se um registro existir na tabela ele faz o update normalmente
porem eu preciso fazer uma rotina que:
se for dado um update e o registro nao existir o metodo “update” chamara o
metodo “Insere” para inserir o registro
meu problema:
da lina 100 ate a linha 120
observem que ja tentei de tudo
ou seja
primeiro, achei que se o reistro nao existisse ele iria sair num SQLException
porque pelo SQLException eu iria testar o codigo do erro e sendo -2601 que e o erro do SQLSERVER (banco que uso)
de registro inexistente eu iria chamar o metodo “Insere” porem ele nao sai como SQLException
inclusive coloquei para aparecer qualquer mensagem para verificar se estava passando por ali
depois eu pensei que o smtm.execute, como ele retorna um boolean
se fosse false pensei que era porque nao tinha encontrado o registro porem
ele me retorna false se existir o registro ou nao existir o registro
em fim:
como eu consigo verificar se o Update que estou dando no metodo me diga se encontrou o registro ou nao…
desde ja agradeco…
[code]/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
package Tabelas;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import master00.ConexaoDB;
/**
*
-
@author Jonas
*/
public class UsuarioDAO {private Connection con;
public UsuarioDAO() throws Exception {
this.con = ConexaoDB.getConnection();
}public Usuario getUsuario(String usucodigo) throws Exception {
Usuario usuario; try { usuario = new Usuario(); } catch (Exception e) { JOptionPane.showMessageDialog(null, "UsuarioDAO" + e); System.exit(0); throw new Exception(e); // se nao tiver o usuario vira erro } try { PreparedStatement smtm = con.prepareStatement("select * from usuario where usucodigo = ?"); smtm.setString(1, usucodigo); ResultSet rs = smtm.executeQuery(); if (rs.next()) { usuario.setUsucodigo(rs.getString("usucodigo")); usuario.setUsunome(rs.getString("usunome")); usuario.setUsutipo(rs.getString("usutipo")); usuario.setUsucodfunc(rs.getInt("usucodfunc")); usuario.setUsuloja(rs.getInt("usuloja")); usuario.setUsusenha(rs.getString("ususenha")); usuario.setUsuprivilegio(rs.getString("usuprivilegio")); usuario.setUsutipoimp(rs.getString("usutipoimp")); usuario.setUsudirtrab(rs.getString("usudirtrab")); usuario.setUsufuncaocaixa(rs.getString("usufuncaocaixa")); usuario.setUsugerimp(rs.getString("usugerimp")); } else { throw new Exception("Usuário Não Cadastrado"); } rs.close(); smtm.close(); } catch (SQLException e) { JOptionPane.showMessageDialog(null, e); System.exit(0); } return usuario;
}
public void update(Usuario usuario) throws Exception {
System.out.println(usuario.getUsucodigo());
try {
PreparedStatement smtm = con.prepareStatement(
“update usuario "
+ " set usunome= ?, "
+ " usutipo= ?, "
+ " usucodfunc= ?, "
+ " usuloja= ?, "
+ " ususenha= ?, "
+ " usuprivilegio= ?, "
+ " usutipoimp= ?, "
+ " usudirtrab= ?, "
+ " usugerimp= ? "
+ " where usucodigo = ?”);
smtm.setString(1, usuario.getUsunome());
smtm.setString(2, usuario.getUsutipo());
smtm.setInt(3, usuario.getUsucodfunc());
smtm.setInt(4, usuario.getUsuloja());
smtm.setString(5, usuario.getUsusenha());
smtm.setString(6, usuario.getUsuprivilegio());
smtm.setString(7, usuario.getUsutipoimp());
smtm.setString(8, usuario.getUsudirtrab());
smtm.setString(9, usuario.getUsugerimp());
smtm.setString(10, usuario.getUsucodigo());
System.out.println("alterando registro");
boolean b;
b=smtm.execute();
System.out.println(b);
if (!b) {
Insere(usuario);
}
smtm.close();
con.commit();
System.out.println("alterando regis002");
} catch (SQLException e) {
System.out.println("alterando regis003");
System.out.println(e);
if (e.getErrorCode() == -2601) {
Insere(usuario);
return;
}
throw new Exception(e);
}
}
private void Insere(Usuario usuario) throws Exception {
try {
PreparedStatement smtm = con.prepareStatement(
"insert usuario (usucodigo,"
+ " usunome,usutipo,usucodfunc,"
+ " usuloja,ususenha,usuprivilegio,"
+ " usutipoimp,usudirtrab,usugerimp)"
+ " values "
+ "(?,?,?,?,?,?,?,?,?,?)");
smtm.setString(1, usuario.getUsucodigo());
smtm.setString(2, usuario.getUsunome());
smtm.setString(3, usuario.getUsutipo());
smtm.setInt(4, usuario.getUsucodfunc());
smtm.setInt(5, usuario.getUsuloja());
smtm.setString(6, usuario.getUsusenha());
smtm.setString(7, usuario.getUsuprivilegio());
smtm.setString(8, usuario.getUsutipoimp());
smtm.setString(9, usuario.getUsudirtrab());
smtm.setString(10, usuario.getUsugerimp());
smtm.execute();
smtm.close();
con.commit();
System.out.println("inserindo registro");
} catch (Exception e) {
throw new Exception(e);
}
}
}[/code]