Boa tarde gente estou com um erro neste código será que podem me dar uma força?

6 respostas
java
E
private void PaSSARmov() {

//String IDMOV = txtmovrelat.getText().trim();

String ID = txtidmov.getText().trim();

String PRODUTO = txtprodutomov.getText().trim();

String IDSTQ = txtidstq.getText().trim();

String SETOR = cbsetormov.getSelectedItem().toString();

String USUARIO = txtusuariomov.getText().trim();

String QUANTIDADE = txtquantidademov.getText().trim();

String CA = txtcamov.getText().trim();

String DATA = txtdatamov.getText().trim();

String OS = txtosmov.getText().trim();
//PASSANDO OS CAMPOS PARA TABELA 
DefaultTableModel val = (DefaultTableModel) tblmov.getModel();
val.addRow(new String[]{ID, PRODUTO, IDSTQ, SETOR, USUARIO, QUANTIDADE, CA, DATA, OS});

txtidmov.setText(null);
txtprodutomov.setText(null);
txtidstq.setText(null);
txtusuariomov.setText(null);
txtquantidademov.setText(null);
txtcamov.setText(null);
txtdatamov.setText(null);
txtosmov.setText(null);
}

private void Adiciona_mov() {
try {
    for (int i = 1; i < tblmov.getRowCount(); i++) {
	//String IDMOV = (String) tblmov.getValueAt(i, 1);
	String ID = (String) tblmov.getValueAt(i, 1);
	String PRODUTO = (String) tblmov.getValueAt(i, 2);
	String IDSTQ = (String) tblmov.getValueAt(i, 3);
	String SETOR = (String) tblmov.getValueAt(i, 4);
	String USUARIO = (String) tblmov.getValueAt(i, 5);
	String QUANTIDADE = (String) tblmov.getValueAt(i, 6);
	String CA = (String) tblmov.getValueAt(i, 7);
	String DATA = (String) tblmov.getValueAt(i, 8);
	String OS = (String) tblmov.getValueAt(i, 9);		

	//PASSANDO OS DADOS DO LLOP PARA O BANCO DE DADOS
	String sql = "insert into movimento (idUser, produtomov, idSTQ, setormov, usuariomov, quantidademov, camov, datamov,OS) values (?,?,?,?,?,?,?,?,?);";
	pst = conexao.prepareStatement(sql);
	//PASSANDO O CONTEUDO DA CAIXA DE PESQUISA PARA O ?
	//ATENÇÃO AO % QUE É CONTINUAÇÃO DA STRING SQL	    
	pst.setString(1, ID);
	pst.setString(2, PRODUTO);
	pst.setString(3, IDSTQ);
	pst.setString(4, SETOR);
	pst.setString(5, USUARIO);
	pst.setString(6, QUANTIDADE);
	pst.setString(7, CA);
	pst.setString(8, DATA);
	pst.setString(9, OS);
	DefaultTableModel val = (DefaultTableModel) tblmov.getModel();
val.addRow(new String[]{ID, PRODUTO, IDSTQ, SETOR, USUARIO, QUANTIDADE, CA, DATA, OS});
	int adicionado = JOptionPane.showConfirmDialog(null, "CONFIRMA EMISÃO DE SAIDA", "ATENÇÃO", JOptionPane.YES_NO_OPTION);
	if (adicionado == JOptionPane.YES_OPTION) {
	}
	pst.executeUpdate();
    }
} catch (Exception e) {
    e.printStackTrace();
    JOptionPane.showMessageDialog(null, e);
    System.out.println(e);
}
}

6 Respostas

F

Boa tarde.

Primeiro, recomendo que leia este post. Sua dúvida não está clara o suficiente para receber ajuda da comunidade.

Apenas ler seu código não é o suficiente para te ajudarmos. Que tal descrever os comportamentos? O que está acontecendo x o que deveria acontecer.

E

Desculpe sou novato aqui e não saiu o restante

Estou retirando as Strings de uma linha da Jtable e passando como String para o sql

E ta dando erro
java.lang.ArrayIndexOutOfBoundsException: 9 >= 9
at java.util.Vector.elementAt(Vector.java:477)

E
private void Adiciona_mov() {

try {

for (int i = 1; i < tblmov.getRowCount(); i++) {

//String IDMOV = (String) tblmov.getValueAt(i, 1);

String ID = (String) tblmov.getValueAt(i, 1);

String PRODUTO = (String) tblmov.getValueAt(i, 2);

String IDSTQ = (String) tblmov.getValueAt(i, 3);

String SETOR = (String) tblmov.getValueAt(i, 4);

String USUARIO = (String) tblmov.getValueAt(i, 5);

String QUANTIDADE = (String) tblmov.getValueAt(i, 6);

String CA = (String) tblmov.getValueAt(i, 7);

String DATA = (String) tblmov.getValueAt(i, 8);

String OS = (String) tblmov.getValueAt(i, 9);
//PASSANDO OS DADOS DO LLOP PARA O BANCO DE DADOS
String sql = "insert into movimento (idUser, produtomov, idSTQ, setormov, usuariomov, quantidademov, camov, datamov,OS) values (?,?,?,?,?,?,?,?,?);";
pst = conexao.prepareStatement(sql);
//PASSANDO O CONTEUDO DA CAIXA DE PESQUISA PARA O ?
//ATENÇÃO AO % QUE É CONTINUAÇÃO DA STRING SQL	    
pst.setString(1, ID);
pst.setString(2, PRODUTO);
pst.setString(3, IDSTQ);
pst.setString(4, SETOR);
pst.setString(5, USUARIO);
pst.setString(6, QUANTIDADE);
pst.setString(7, CA);
pst.setString(8, DATA);
pst.setString(9, OS);
DefaultTableModel val = (DefaultTableModel) tblmov.getModel();
val.addRow(new String[]{ID, PRODUTO, IDSTQ, SETOR, USUARIO, QUANTIDADE, CA, DATA, OS});

int adicionado = JOptionPane.showConfirmDialog(null, CONFIRMA EMISÃO DE SAIDA, ATENÇÃO, JOptionPane.YES_NO_OPTION);

if (adicionado == JOptionPane.YES_OPTION) {

}

pst.executeUpdate();

}

} catch (Exception e) {

e.printStackTrace();

JOptionPane.showMessageDialog(null, e);

System.out.println(e);

}

}
S

Você está tratando a primeira posição como sendo 1 mas na verdade começa em 0.

Então você tem as colunas de 0 à 8 e as linhas de 0 à tblmov.getRowCount()

E

Bom vou tentar aqui para ver se da certo ja te falo

S

@EricoRyhan_De_Paula, esta exception indica que você está tentando acessar uma posição no vetor que não existe. No caso, seu vetor tem 9 posições, mas os índices não começam do 1 e no caso vai até o 9, mas sim de 0 a 8. Por isso o compilador indica “9 >= 9”, porque você quer acessar uma posição 9, coisa que no seu vetor este índice não existe. :wink:

Criado 3 de junho de 2019
Ultima resposta 4 de jun. de 2019
Respostas 6
Participantes 4