Inserir dados da Jtable no banco

Boa dia Vini,

Consegue mudar o Model, no NetBeans ele fica na propriedade da Jtabele!

Ele esta recusando column, será que tenho que declarar ele?

segue o erro:

C:\Documents and Settings\lagsilva\Desktop\KarinhaEstoque_Modficado\Karen Estoque\src\br\com\karinhaEstoque\view\formInclusaoVenda.java:1277: cannot find symbol symbol : variable column location: class br.com.karinhaEstoque.view.formInclusaoVenda.ProdutosTableModel if (column == COL_CODIGO)return "Código"; C:\Documents and Settings\lagsilva\Desktop\KarinhaEstoque_Modficado\Karen Estoque\src\br\com\karinhaEstoque\view\formInclusaoVenda.java:1279: cannot find symbol symbol : variable column location: class br.com.karinhaEstoque.view.formInclusaoVenda.ProdutosTableModel if (column == COL_DESCRICAO)return "Descrição"; C:\Documents and Settings\lagsilva\Desktop\KarinhaEstoque_Modficado\Karen Estoque\src\br\com\karinhaEstoque\view\formInclusaoVenda.java:1281: cannot find symbol symbol : variable column location: class br.com.karinhaEstoque.view.formInclusaoVenda.ProdutosTableModel if (column == COL_PRECO)return "Preço"; C:\Documents and Settings\lagsilva\Desktop\KarinhaEstoque_Modficado\Karen Estoque\src\br\com\karinhaEstoque\view\formInclusaoVenda.java:1283: cannot find symbol symbol : variable column location: class br.com.karinhaEstoque.view.formInclusaoVenda.ProdutosTableModel if (column == COL_QUANTIDADE)return "Quantidade"; C:\Documents and Settings\lagsilva\Desktop\KarinhaEstoque_Modficado\Karen Estoque\src\br\com\karinhaEstoque\view\formInclusaoVenda.java:1285: cannot find symbol symbol : variable column location: class br.com.karinhaEstoque.view.formInclusaoVenda.ProdutosTableModel if (column == COL_TOTAL)return "Total"; C:\Documents and Settings\lagsilva\Desktop\KarinhaEstoque_Modficado\Karen Estoque\src\br\com\karinhaEstoque\view\formInclusaoVenda.java:1302: cannot find symbol symbol : variable column location: class br.com.karinhaEstoque.view.formInclusaoVenda.ProdutosTableModel if (column == COL_QUANTIDADE) valores.get(rowIndex).setQuantidade(Integer.parseInt(aValue.toString())); C:\Documents and Settings\lagsilva\Desktop\KarinhaEstoque_Modficado\Karen Estoque\src\br\com\karinhaEstoque\view\formInclusaoVenda.java:1311: cannot find symbol symbol : variable column location: class br.com.karinhaEstoque.view.formInclusaoVenda.ProdutosTableModel if (column == COL_CODIGO) return Integer.class; C:\Documents and Settings\lagsilva\Desktop\KarinhaEstoque_Modficado\Karen Estoque\src\br\com\karinhaEstoque\view\formInclusaoVenda.java:1312: cannot find symbol symbol : variable column location: class br.com.karinhaEstoque.view.formInclusaoVenda.ProdutosTableModel if (column == COL_DESCRICAO) return String.class; C:\Documents and Settings\lagsilva\Desktop\KarinhaEstoque_Modficado\Karen Estoque\src\br\com\karinhaEstoque\view\formInclusaoVenda.java:1333: cannot find symbol symbol : method fireTablesRowsInserted(int,int) location: class br.com.karinhaEstoque.view.formInclusaoVenda.ProdutosTableModel fireTablesRowsInserted(valores.size()-1, valores.size()-1); C:\Documents and Settings\lagsilva\Desktop\KarinhaEstoque_Modficado\Karen Estoque\src\br\com\karinhaEstoque\view\formInclusaoVenda.java:1337: cannot find symbol symbol : variable Collections location: class br.com.karinhaEstoque.view.formInclusaoVenda.ProdutosTableModel return Collections.unmodifiableList(valores); Note: Some input files use unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 10 errors FALHA NA CONSTRUÇÃO (tempo total: 3 segundos)

É pq no método o nome do parâmetro é columnIndex, não column.

Eu já avisei que estou sem netbeans aqui, e faço as coisas de cabeça. Você pode tentar corrigir errinhos bobos como esse? A exception já descrevia qual era o problema, tente entender o código ao invés de só copiar e colar.

Já corrigi ali em cima.

Estou achando que ele deve retornar ColumnIndex invés de column.

Sim, ali em cima eu corrigi.

Veja que o método getColumnName foi declarado assim:
public String getColumnName(int columnIndex) {

Mas internamente estou usando a variável com o nome só de column

Você pode corrigir o problema declarando assim:
public String getColumnName(int column) {

Ou, alterando o uso interno para columnIndex. Eu editei o código ali em cima e fiz as correções, onde necessário.

Eu digitei tudo na mão e tentei enteder pelo comentário.
Eu tentei ver o erro que aparece no método public String getColumnName(int columnIndex)//que exibie nome das colunas no cabeçalho da Jatable, procurei no net, não achei nada específico.
aparece este erro:missing return statement

Ah sim, é pq todos os returns estão dentro de ifs. Você precisa ter um return fora.
Corrigir isso é simples. Antes da última linha do método faça:

Ou simplesmente faça:

Isso vale tanto para o getColumnName() quanto para o getValueAt.

No fundo, esse código nunca executará, pois o JTable jamais irá passar para você um número de coluna que não existe.

Vini eu to com um problema, se poder me ajudar…

Meus dados estão vindo de uma planilha do Excel. Minha “filha” da TableModel é um pouco diferente da que vc apresentou. Mas o fato é que preciso que os dados sejam obtidos apartir da linha 6 da planilha (index 5 no meu código) e quando coloco:

   public int getRowCount() {
            return sheet.getRows()+5;//testei com 100 tb, por via das dúvidas.
        }

   public Object getValueAt(int rowIndex, int columnIndex) {
                 rowIndex = linhaInicial++;//Variável global iniciada com o valor 5.
                 Cell cell = sheet.getCell(columnIndex, rowIndex);//Essa é minha linda 51 do erro abaixo
                return cell.getContents();           

        }

   /**          SEGUINTE ERRO APRESENTADO       **/

  java.lang.ArrayIndexOutOfBoundsException: 30
  at jxl.read.biff.SheetImpl.getCell(SheetImpl.java:356)
  at utilidades.SheetTableModel.getValueAt(SheetTableModel.java:51)
  at javax.swing.JTable.getValueAt(JTable.java:2695)

Na minha planilha existem apenas 30 linhas e por causa dessa exception adicionei mais 5 no getRows para verificar.
E ela continua …

O que pode ser hein??

Se achar necessário o código me avise.

[]'s

Acho que seu unico problema é:

 public int getRowCount() {  
           return sheet.getRows()+5;
       } 

Pois RowCount retorna o numero de linhas e sua planilha provavelmente nao tem o total+5… mesmo lendo a aprtir da quinta linha acho que voce devia tirar o +5 para ler apenas até o final.

[quote=Mark_Ameba]Acho que seu unico problema é:

Pois RowCount retorna o numero de linhas e sua planilha provavelmente nao tem o total+5… mesmo lendo a aprtir da quinta linha acho que voce devia tirar o +5 para ler apenas até o final.[/quote]

Então Mark eu havia feito isso que vc sugeriu, mas não deu certo tb cara. Tentei bolar uma lógica dentro desse método mais até agora não deu certo.
Na verdade, estou começando a enteder agora como funciona a TableModel…

Muito grato desde já!

[]'s

Alguém mais disposto a ajudar um pobre iniciante? Só lembrando que após a importação vou “Inserir dados da Jtable no banco” :smiley:

[]'s

[quote=neeryck]Então Mark eu havia feito isso que vc sugeriu, mas não deu certo tb cara. Tentei bolar uma lógica dentro desse método mais até agora não deu certo.
Na verdade, estou começando a enteder agora como funciona a TableModel…[/quote]

Todos nós estamos. Mas seria bastante útil se postasse o que você fez, a lógica que você quis bolar, o que não deu certo e, se deu erro, que erro deu e aonde. Senão fica impossível te ajudar.