Primeiramente sou novo aqui, e também em java. Criei um sistema para cadastrar curso e alunos, e criei duas tabelas (Cursos e Alunos), na hora de cadastrar um aluno tem o campo nome, o campo cpf e o combobox que puxa os cursos do banco de dados mysql, eu consigo setar no banco o nome do aluno, mas o cpf só pega se for números inteiros, ex:1, 2, 3 e etc. e quando tento setar o cadastro do aluno com o curso que ele faz dá um erro de “incorrect interger value :‘nome do curso’ for column ‘id_curso’ at row 1” abaixo está a tabela no mysql e seu relacionamento:
resumindo eu quero fazer que quando eu cadastrar o aluno e sete o nome do curso na tabela, ele reconheça como id da tabela curso, segue o código abaixo:
public CadastroAluno() {
initComponents();
conexao = ModuloConexao.conector();
}
//criando um método público que pode ser executado em qualquer classe
public void adicionarAluno() {
//a linha abaixo informa qual tabela do banco será preenchida pelo campo de texto
String sql = "insert into aluno(`nome_aluno`, `Cpf`, `id_curso`) values(?,?,?)";
try {
pst = conexao.prepareStatement(sql);
pst.setString(1, txtAluno.getText());
pst.setString(2, txtCpf.getText());
pst.setString(3, cbCurso.getSelectedItem().toString());
int adicionado = pst.executeUpdate();
if (adicionado > 0) {
JOptionPane.showMessageDialog(null, "Aluno Matriculado com sucesso");
txtAluno.setText("");
txtCpf.setText("");
txtAluno.grabFocus();
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
public void preencher() {
//método para preencher o combobox
String sql = "select *from curso";//criando um objeto informando que é pra puxar
//do banco de dados da tabela "CURSO"
try {
pst = conexao.prepareStatement(sql);
rs = pst.executeQuery();
while (rs.next()) {
cbCurso.addItem(rs.getString("nome_curso"));//informando qual a coluna
//da tabela curso eu desejo puxar
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
