Pessoal,
Estou com um problema na aplicação que fiz com swing. Na maioria das vezes que tendo editar os dados de um usuário usando esse metódo:
public class FuncionarioSQL implements ListSelectionListener {
static final String JDBC_DRIVER = "org.hsqldb.jdbcDriver";
static final String DATABASE_URL = "jdbc:hsqldb:file:/caminho/stock";
static final String USERNAME= "sa";
static final String PASSWORD= "";
public static JTable resultTable;
static ResultSet resultSet =null;
static ResultSet resultSet2 =null;
public static Component bAlterar = null;
public static String NomeUser = null;
public static String CargoUser = null;
public static Connection connection =null;
public static Statement statement = null;
public static void AlterarConf(int idFunc,
String nome,
String login,
String senha,
JTextField txtNascimento,
String endereco,
String RG,
String CPF,
JComboBox cargo,
JComboBox ativo){
try{
try {
Class.forName(JDBC_DRIVER);
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
try {
connection = DriverManager.getConnection(DATABASE_URL,USERNAME,PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
String SQL = "UPDATE tabela SET " +
"nome='"+nome+"',"+
"login='"+login+"',"+
"senha='"+senha+"',"+
"data_nasc="+Data.converteData(txtNascimento.getText())+","+
"endereco='"+endereco+"',"+
"rg='"+RG+"',"+
"cpf='"+CPF+"',"+
"ativo='"+(String)ativo.getSelectedItem()+"',"+
"cargo='"+(String)cargo.getSelectedItem()+"'"+
" WHERE idfunc="+idFunc;
System.out.println("->"+SQL);
try {
int rows=0;
statement = connection.createStatement();
rows = statement.executeUpdate(SQL);
System.out.println("OK ->"+rows);
} catch ( SQLException sqlException ) {
System.out.println("Erro SQL!");
sqlException.printStackTrace();
System.exit( 1 );
}
}finally {
try {
statement.close();
connection.close();
} catch ( Exception exception ) {
exception.printStackTrace();
System.exit( 1 );
} // end catch
} // end finally
JOptionPane.showMessageDialog(bAlterar,"Alterado!");
JOptionPane.getRootFrame().dispose();
}
}
…simplesmente não faz o commit
Só que eu tenho que fechar o JInternalFrame e abrir-lo denovo e alterar os dados denovo para que faça o commit. As vezes nem isso resolve. Eu estou comendo bola em alguma coisa? pq eu ja pesquisei em vários sites e me parece que o meu método esta correto.
