JTable com Banco de Dados
Olá pessoal,tudo Bem?
Estou tendo dificuldades de salvar conteúdo no banco de dados, toda vez que eu clico, no botão "salvar", não salva, já fiz de tudo e nada,
se eu comento a variável
Não vou conseguir postar todos os códigos, pois não há espaço, por favor me ajudem
Estou tendo dificuldades de salvar conteúdo no banco de dados, toda vez que eu clico, no botão "salvar", não salva, já fiz de tudo e nada,
se eu comento a variável
stmt.execute()
a tela aparece, mas antes que eu tente gravar algo no banco surgem vários erros, quando comento esta variável citada e tento gravar algum dado, simplesmente não grava, já cheguei até mudar o código mas não resolve nada, criei ao todo 12 classes, não sei se vai caber todos os códigos, mas vamos lá, segue os códigos:
package src.com.mbalem.app;
import src.com.mbalem.app.dao.DBConnection;
import src.com.mbalem.app.form.LivroForm;
public class Main{
public static void main(String[] args){
DBConnection.createTable();
new LivroForm();
}
}
package src.com.mbalem.app.form;
import src.com.mbalem.app.entity.Livro;
import src.com.mbalem.app.controller.LivroController;
import src.com.mbalem.app.table.LivroTableModel;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
import net.miginfocom.swing.MigLayout;
public class LivroForm extends JFrame{
private JLabel lbEditora,lbTitulo,lbIsbn;
private JTextField txtEditora,txtTitulo,txtIsbn;
private JPanel panelAdd,panelTable,panelButtons;
private JButton btnNew,btnSave,btnUpdate,btnRemove,btnCancel;
private JTable table;
private JScrollPane scrollPane;
private List<Livro> livroList;
private Long idLivro;
public LivroForm() throws HeadlessException{
super("Cadastro de Livros");
setContentPane(new JPanel());
setLayout(null);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panelAdd = new JPanel(new MigLayout());
panelAdd.setBorder(BorderFactory.createTitledBorder("Adicionar Livros"));
panelAdd.setBounds(5,0,480,100);
lbEditora = new JLabel("Editora");
lbTitulo = new JLabel("Titulo");
lbIsbn = new JLabel("ISBN");
txtEditora = new JTextField(50);
txtTitulo = new JTextField(50);
txtIsbn = new JTextField(15);
panelAdd.add(lbEditora);
panelAdd.add(txtEditora, "span,growx");
panelAdd.add(lbTitulo);
panelAdd.add(txtTitulo, "span,growx");//o span irá expandir o campo e o growx pula a linha
panelAdd.add(lbIsbn);
panelAdd.add(txtIsbn, "wrap para");
panelButtons = new JPanel(new MigLayout());
panelButtons.setBorder(BorderFactory.createEtchedBorder());
//posição x, y, largura,altura
panelButtons.setBounds(5,105,480,40);
ClassLoader loader = getClass().getClassLoader();
btnNew = new JButton(new ImageIcon(loader.getResource("img/new.png")));
btnSave = new JButton(new ImageIcon(loader.getResource("img/save.png")));
btnUpdate = new JButton(new ImageIcon(loader.getResource("img/edit.png")));
btnRemove = new JButton(new ImageIcon(loader.getResource("img/trash.png")));
btnCancel = new JButton(new ImageIcon(loader.getResource("img/cancel.png")));
panelButtons.add(btnNew, "gapleft 90");//posição do botão: alinha a esquerda com espaço de 90
panelButtons.add(btnCancel);
panelButtons.add(btnSave, "gap unrelated");//posição do botão: alinhados a direita horizontalmente
panelButtons.add(btnUpdate, "gap unrelated");//posição do botão: alinhados a direita horizontalmente
panelButtons.add(btnRemove);
panelTable = new JPanel(new MigLayout());
panelTable.setBorder(BorderFactory.createTitledBorder("Lista de Livros"));
panelTable.setBounds(5, 150, 480, 240);
table = new JTable();
scrollPane = new JScrollPane(table);
panelTable.add(scrollPane);
refreshTable();
add(panelAdd);
add(panelButtons);
add(panelTable);
//tamanho minimo da tela
setMinimumSize(new Dimension(500,420));
setVisible(true);
btnSave.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
onSaveLivro();
}
});
}
private void onSaveLivro(){
Livro livro = new Livro();
if(txtEditora.getText().length() > 0 && txtTitulo.getText().length() > 0 && txtIsbn.getText().length() > 0){
livro.setEditora(txtEditora.getText());
livro.setTitulo(txtTitulo.getText());
livro.setIsbn(txtIsbn.getText());
}else{
JOptionPane.showMessageDialog(this, "Todos os campos são obrigatórios!");
//return;//saindo do método
}
int result;
if(idLivro == null){
result = new LivroController().addLivro(livro);
}else{
livro.setId(idLivro);
result = new LivroController().alterarLivro(livro);
idLivro = null;
}
if(result == 1){
JOptionPane.showMessageDialog(this, "Valor inserido com sucesso!");
refreshTable();
}else{
JOptionPane.showMessageDialog(this, "Tente Novamente!");
}
}
private void refreshTable(){
livroList = new LivroController().findLivros();
if(livroList != null){
table.setModel(new LivroTableModel(livroList));
}
}
}
Não vou conseguir postar todos os códigos, pois não há espaço, por favor me ajudem
Carla Silva
Curtidas 0
Respostas
Jones Granatyr
17/02/2017
Opa! Seria interessante você postar a mensagem de erro que está acontecendo
GOSTEI 0
Carla Silva
17/02/2017
Este é o erro que aparece
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Can't call rollback when autocommit=true
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.Util.getInstance(Util.java:408)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:918)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:897)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:886)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:860)
at com.mysql.jdbc.ConnectionImpl.rollback(ConnectionImpl.java:4586)
at src.com.mbalem.app.dao.LivroDAO.save(LivroDAO.java:31)
at src.com.mbalem.app.facade.LivroFacade.save(LivroFacade.java:17)
at src.com.mbalem.app.controller.LivroController.addLivro(LivroController.java:16)
at src.com.mbalem.app.form.LivroForm.onSaveLivro(LivroForm.java:112)
at src.com.mbalem.app.form.LivroForm.access$0(LivroForm.java:98)
at src.com.mbalem.app.form.LivroForm$1.actionPerformed(LivroForm.java:92)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
java.sql.SQLException: Field 'ID' doesn't have a default value
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3970)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3906)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2524)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2677)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2549)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1861)
at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2073)
at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2009)
at com.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5098)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1994)
at src.com.mbalem.app.dao.LivroDAO.save(LivroDAO.java:27)
at src.com.mbalem.app.facade.LivroFacade.save(LivroFacade.java:17)
at src.com.mbalem.app.controller.LivroController.addLivro(LivroController.java:16)
at src.com.mbalem.app.form.LivroForm.onSaveLivro(LivroForm.java:112)
at src.com.mbalem.app.form.LivroForm.access$0(LivroForm.java:98)
at src.com.mbalem.app.form.LivroForm$1.actionPerformed(LivroForm.java:92)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Can't call rollback when autocommit=true
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.Util.getInstance(Util.java:408)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:918)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:897)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:886)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:860)
at com.mysql.jdbc.ConnectionImpl.rollback(ConnectionImpl.java:4586)
at src.com.mbalem.app.dao.LivroDAO.save(LivroDAO.java:31)
at src.com.mbalem.app.facade.LivroFacade.save(LivroFacade.java:17)
at src.com.mbalem.app.controller.LivroController.addLivro(LivroController.java:16)
at src.com.mbalem.app.form.LivroForm.onSaveLivro(LivroForm.java:112)
at src.com.mbalem.app.form.LivroForm.access$0(LivroForm.java:98)
at src.com.mbalem.app.form.LivroForm$1.actionPerformed(LivroForm.java:92)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
java.sql.SQLException: Field 'ID' doesn't have a default value
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3970)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3906)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2524)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2677)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2549)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1861)
at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2073)
at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2009)
at com.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5098)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1994)
at src.com.mbalem.app.dao.LivroDAO.save(LivroDAO.java:27)
at src.com.mbalem.app.facade.LivroFacade.save(LivroFacade.java:17)
at src.com.mbalem.app.controller.LivroController.addLivro(LivroController.java:16)
at src.com.mbalem.app.form.LivroForm.onSaveLivro(LivroForm.java:112)
at src.com.mbalem.app.form.LivroForm.access$0(LivroForm.java:98)
at src.com.mbalem.app.form.LivroForm$1.actionPerformed(LivroForm.java:92)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
GOSTEI 0
Estevão Dias
17/02/2017
Oi Carla,
Você está usando JDBC, certo? Tenta chamar a função
na sua conexão.
Você está usando JDBC, certo? Tenta chamar a função
con.setAutoCommit(false);
na sua conexão.
GOSTEI 0
Carla Silva
17/02/2017
Não deu certo, os erros persistem, quer que eu poste o código da conexão com o banco?
GOSTEI 0