Ola,
estou tentando salvar o id das disciplinas(checkboxes) q estão sendo selecionadas na tela mas não esta funcionando tipo o código não esta gerando erro mas também não esta salvando no banco =(
O código do meu método para salvar as disciplinas é o seguinte:
public void salvaDisciplinasNaTurma(JCheckBox ck[],Turma turma)throws Exception
{
for(int i=0;i<ck.length;i++)
{
if(ck[i]!=null)
{
if(ck[i].isSelected())
{
PreparedStatement ps= conexao.prepareStatement("select d.id,t.id from disciplina d,turma t where d.nome= ? and t.nome= ? and t.id_ensino=d.id_ensino ");
ps.setString(1, ck[i].getText());
ps.setString(2, turma.getNome());
ResultSet resultado = ps.executeQuery();
while(resultado.next())
{
if(resultado.getInt(1)>0)
{comando.executeUpdate("insert into turma_disciplina (id_turma,id_disciplina) values ('" +resultado.getInt(2)+ "','" + resultado.getInt(1) + "')" );
}
}
}
}
}
}
Aqui é o método em que eu chamo o método acima dentro de outra classe:
[code]botaoAdicionaDisciplina.addActionListener (new ActionListener (){ //ADD AS DISCIPLINAS NA TURMA
public void actionPerformed(ActionEvent e)
{
try{
Turma novaTurma=new Turma();
TurmaDAO turmadao=new TurmaDAO();
turmadao.salvaDisciplinasNaTurma(ck,novaTurma);
JOptionPane.showMessageDialog(null, "Dados inseridos com sucesso!");
}
catch(Exception e1)
{
JOptionPane.showMessageDialog(null, "A turma não esta cadastrada no banco!"+e1.getMessage());
e1.printStackTrace();
}
}});[/code]
Alguém pode me ajudar a encontrar o erro =/
Obrigada!
tenta usar conexao.commit();
Ola Mauricioadl,
então conexao.commit(); eu uso no final do método?
fiz mais algumas alterações e agora esta ocorrendo um erro java.lang.NullPointerException e cujo as linhas de erro são as seguintes
comando.executeUpdate("insert into turma_disciplina (id_turma,id_disciplina) values ('" +resultado.getInt(2)+ "','" + resultado.getInt(1) + "')" );
e a outra linha é turmadao.salvaDisciplinasNaTurma(ck,novaTurma);
Ah!as alterações q fiz foram as seguintes:
botaoAdicionaDisciplina.addActionListener (new ActionListener (){ //ADD AS DISCIPLINAS NA TURMA
[code]public void actionPerformed(ActionEvent e)
{
try{
Turma novaTurma=new Turma();
[b]novaTurma.setNome(ttxtNomeTurma.getText());
novaTurma.setSemestre(Integer.parseInt(txtSemestre.getText()));
novaTurma.setAno(Integer.parseInt(txtAno.getText()));[/b]
…
[/code]
obrigada!
java.lang.NullPointerException
esse erro ocorre quando vc tenta usar um array ou uma variavel/atributo que esta nulo. Provavelmente os resultados de; resultado.getInt(2)+ “’,’” + resultado.getInt(1) nao estao vindo, verifique se a sua consulta esta correta!
Ola,
testei no banco mas a consulta gera resultados :roll:
Segue um print da pesquisa no banco!
Obrigada
bom, vamos por partes.
vc colocou o commit()?
ele tem q ser colocado no final de qualquer instrução sql que há alteração na base de dados, isso faz com q sua transação seja efetivada.
vc esta tentando gravar checkbox certo? como eles estao no banco de dados? tipo boolean mesmo?
oi,
coloquei o commit() no final da instrução sql e gerou este erro :S java.sql.SQLException: Can't call commit when autocommit=true
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:933)
at com.mysql.jdbc.ConnectionImpl.commit(ConnectionImpl.java:1635)....
eu to tentando gravar o texto dos checkboxes selecionados já que eles são as disciplinas que estão salvas no banco para poder relacioná-los às turmas
obrigada 
mas, qual é o tipo dos checkbox no banco? varchar, boolean, byte??? pode ser esse o problema
eu salvo o texto dos checkboxes no banco e o tipo que uso é Varchar
:)brigada