Tentando inserir um codigo automatico

2 respostas
D

Pessoal, olá, meu primeiro post no forum, saudações a todos(as).

Bom, eu estou tentando inserir um codigo automático assim que for clicado no btnIncluir (botao de cria a conexao e grava no BD).
tenho 3 campos na interface, e tb uma JTable mostrando os registros ja
cadastrados.
(campos = Codigo, Nome, Salario);

aqui está a ação que coloquei no btnIncluir:

private void btnIncluirActionPerformed(java.awt.event.ActionEvent evt) {

Pessoa p = new Pessoa();

//duvida começa aqui.

int x;

String cod;

cod = ((String)tabela.getValueAt(tabela.getRowCount(), 1));

if(cod == null){

cod = 1;

txtPes_Codigo.setText(cod);

}else{

x = Integer.valueOf(cod) + 1;

txtPes_Codigo.setText(String.valueOf(x));

}
//aqui ja é setado os valores para a classe pessoa.
    p.setPes_Codigo(Integer.parseInt(txtPes_Codigo.getText()));
    p.setPes_Nome(txtPes_Nome.getText());
    p.setPes_Salario(Double.parseDouble(txtPes_Salario.getText()));
    controle.incluir( p );
    atualizaTabela();
}

… oq acontece eh que eu nao estou conseguindo fazer ele contar qtas linhas tem na tabela e somar mais 1, para poder inserir o codigo…

alguem entendeu, e saberia me ajudar ?

obrigado, abraços.
daniel

2 Respostas

D

bom pessoal, pra nao deixar o topico em aberto e sem respostas, e como consegui resolver o problema, posto aqui a solução:

Criei um metodo para buscar o proximo codigo e retorna-lo.

public int nextCod() throws SQLException {
    int id = 0;
    String sql = "SELECT MAX(PES_CODIGO) AS CONTADOR FROM PESSOA";
    PreparedStatement stmt = null;
    ResultSet result = null;
    id = 1;
    try {
        stmt = bd.Conexao.getPreparedStatement(sql);
        result = stmt.executeQuery();

        if (result.next())
            id = result.getInt(1)+1;
    } finally {
        if (result != null)
            result.close();
        if (stmt != null)
            stmt.close();
    }
    return id;        
}

abraços, daniel.

B

Não sei se entendi direito a pergunta, mas se vc quiser sabe qual foi o número da linha selecionado, é só fazer:

tabela.getSelectedRow() // isso irá retornar o número da primeira linha selecionada

ou


tabela.getSelectedRows() ; //irá retornar um vetor de int com todas as linhas selecionadas.

Se não for isso, explica ae de novo para eu entender melhor…

Criado 14 de novembro de 2006
Ultima resposta 14 de nov. de 2006
Respostas 2
Participantes 2