Antes de qualquer coisa, eu to DESESPERADO. Enfim, to tentando inserir dados de uns TextFields em uma tabela no banco, só que ta dando esse erro “Exception in thread “AWT-EventQueue-0” java.lang.NumberFormatException: For input string: “””, começou do nada, antes tava dando. Eu uso DefaultTableModel e só Deus pode me julgar por isso, não tenho intelecto suficiente pra usar AbstractTableModel.
Classe TelaLivro
[code]package fronteira;
import javax.swing.table.DefaultTableModel;
import modelo.Livro;
import persistencia.PerLivro;
/**
*
-
@author Administrador
*/
public class TelaLivro extends javax.swing.JFrame {
String isbn, titulo, genero, tipo, autor, editora;
int edicao;/** Creates new form NewJFrame */
public TelaLivro() {
initComponents();
// DefaultTableModel modelo= (DefaultTableModel) tblLivro.getModel(); listar();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jDesktopPane1 = new javax.swing.JDesktopPane();
lblEdicao = new javax.swing.JLabel();
lblTitulo = new javax.swing.JLabel();
lblAutor = new javax.swing.JLabel();
lblEditora = new javax.swing.JLabel();
txtAutor = new javax.swing.JTextField();
txtEdicao = new javax.swing.JTextField();
txtEditora = new javax.swing.JTextField();
lblISBN = new javax.swing.JLabel();
lblGenero = new javax.swing.JLabel();
txtGenero = new javax.swing.JTextField();
bttLimpar = new javax.swing.JButton();
txtISBN = new javax.swing.JTextField();
bttOk = new javax.swing.JButton();
lblTipo = new javax.swing.JLabel();
txtTipo = new javax.swing.JTextField();
txtTitulo = new javax.swing.JTextField();
jScrollPane1 = new javax.swing.JScrollPane();
tblLivro = new javax.swing.JTable();
bttAlterar = new javax.swing.JButton();
bttExcluir = new javax.swing.JButton();
jButton1 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Cadastrar Livros");
lblEdicao.setText("Edição");
lblTitulo.setText("Titulo");
lblAutor.setText("Autor");
lblEditora.setText("Editora");
txtAutor.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtAutorActionPerformed(evt);
}
});
txtEdicao.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtEdicaoActionPerformed(evt);
}
});
txtEditora.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtEditoraActionPerformed(evt);
}
});
lblISBN.setText("ISBN");
lblGenero.setText("Gênero");
bttLimpar.setText("Limpar");
bttLimpar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bttLimparActionPerformed(evt);
}
});
txtISBN.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtISBNActionPerformed(evt);
}
});
bttOk.setText("OK");
bttOk.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bttOkActionPerformed(evt);
}
});
lblTipo.setText("Tipo");
jScrollPane1.setPreferredSize(new java.awt.Dimension(469, 402));
tblLivro.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"Titulo", "Autor", "Editora", "Gênero", "Edição", "ISBN", "Tipo"
}
) {
Class[] types = new Class [] {
java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
});
tblLivro.setMinimumSize(new java.awt.Dimension(200, 0));
tblLivro.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
tblLivro.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
tblLivroMouseClicked(evt);
}
});
jScrollPane1.setViewportView(tblLivro);
bttAlterar.setText("Alterar");
bttAlterar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bttAlterarActionPerformed(evt);
}
});
bttExcluir.setText("Excluir");
bttExcluir.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bttExcluirActionPerformed(evt);
}
});
jButton1.setText("jButton1");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 599, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(lblEdicao, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(lblTitulo, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(lblAutor, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(lblEditora))
.addComponent(bttAlterar))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(bttExcluir)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButton1)
.addGap(104, 104, 104)
.addComponent(bttLimpar)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(bttOk, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addComponent(txtTitulo, javax.swing.GroupLayout.DEFAULT_SIZE, 528, Short.MAX_VALUE)
.addComponent(txtAutor, javax.swing.GroupLayout.DEFAULT_SIZE, 528, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addComponent(txtEditora, javax.swing.GroupLayout.PREFERRED_SIZE, 217, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(lblGenero)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtGenero))
.addGroup(layout.createSequentialGroup()
.addComponent(txtEdicao, javax.swing.GroupLayout.DEFAULT_SIZE, 81, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(lblISBN, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtISBN, javax.swing.GroupLayout.DEFAULT_SIZE, 188, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(lblTipo, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(txtTipo, javax.swing.GroupLayout.PREFERRED_SIZE, 173, javax.swing.GroupLayout.PREFERRED_SIZE)))))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(lblTitulo, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addGap(4, 4, 4)
.addComponent(txtTitulo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE, false)
.addComponent(lblAutor, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txtAutor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(lblEditora)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addGap(6, 6, 6)
.addComponent(lblGenero))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(txtGenero, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txtEditora, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(lblEdicao)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE, false)
.addComponent(txtEdicao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txtTipo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txtISBN, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lblTipo, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lblISBN)))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(bttOk)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(bttLimpar)
.addComponent(bttAlterar)
.addComponent(bttExcluir)
.addComponent(jButton1)))
.addGap(19, 19, 19)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 360, Short.MAX_VALUE)
.addContainerGap())
);
pack();
}// </editor-fold>
private void txtAutorActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void txtEdicaoActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void txtEditoraActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void bttLimparActionPerformed(java.awt.event.ActionEvent evt) {
limpar();
}
private void txtISBNActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void bttOkActionPerformed(java.awt.event.ActionEvent evt) {
salvar();
Livro livro=new Livro();
livro.setTitulo(txtTitulo.getText());
livro.setAutor(txtAutor.getText());
livro.setEditora(txtEditora.getText());
livro.setGenero(txtGenero.getText());
livro.setIsbn(txtISBN.getText());
livro.setTipo(txtTipo.getText());
livro.setEdicao(Integer.parseInt(txtEdicao.getText()));
PerLivro perlivro=new PerLivro();
perlivro.gravar(livro);
limpar();
}
private void tblLivroMouseClicked(java.awt.event.MouseEvent evt) {
int selecionado = tblLivro.getSelectedRow();
txtTitulo.setText((String) tblLivro.getValueAt(selecionado,0));
txtAutor.setText((String) tblLivro.getValueAt(selecionado,1));
txtEditora.setText((String) tblLivro.getValueAt(selecionado,2));
txtISBN.setText((String) tblLivro.getValueAt(selecionado,5));
txtTipo.setText((String) tblLivro.getValueAt(selecionado,6));
txtGenero.setText((String) tblLivro.getValueAt(selecionado,3));
txtEdicao.setText((String) tblLivro.getValueAt(selecionado,4));
isbn=txtISBN.getText();
titulo=txtTitulo.getText();
autor=txtAutor.getText();
editora=txtEditora.getText();
tipo=txtTipo.getText();
genero=txtGenero.getText();
// edicao=Integer.parseInt(txtEdicao.getText());
}
private void bttAlterarActionPerformed(java.awt.event.ActionEvent evt) {
PerLivro perlivro=new PerLivro();
perlivro.alterar(isbn, titulo, edicao, genero, tipo, autor, editora);
}
private void bttExcluirActionPerformed(java.awt.event.ActionEvent evt) {
PerLivro perlivro=new PerLivro();
perlivro.excluir(isbn);
((DefaultTableModel) tblLivro.getModel()).removeRow(tblLivro.getSelectedRow());
tblLivro.setModel(tblLivro.getModel());
limpar();
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
PerLivro perlivro=new PerLivro();
//definirModelo(null);
//perlivro.listar();// TODO add your handling code here:
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new TelaLivro().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton bttAlterar;
private javax.swing.JButton bttExcluir;
private javax.swing.JButton bttLimpar;
private javax.swing.JButton bttOk;
private javax.swing.JButton jButton1;
private javax.swing.JDesktopPane jDesktopPane1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JLabel lblAutor;
private javax.swing.JLabel lblEdicao;
private javax.swing.JLabel lblEditora;
private javax.swing.JLabel lblGenero;
private javax.swing.JLabel lblISBN;
private javax.swing.JLabel lblTipo;
private javax.swing.JLabel lblTitulo;
private javax.swing.JTable tblLivro;
private javax.swing.JTextField txtAutor;
private javax.swing.JTextField txtEdicao;
private javax.swing.JTextField txtEditora;
private javax.swing.JTextField txtGenero;
private javax.swing.JTextField txtISBN;
private javax.swing.JTextField txtTipo;
private javax.swing.JTextField txtTitulo;
// End of variables declaration
public void limpar(){
txtTitulo.setText(null);
txtAutor.setText(null);
txtEditora.setText(null);
txtISBN.setText(null);
txtTipo.setText(null);
txtGenero.setText(null);
txtEdicao.setText(null);
}
public void salvar(){
DefaultTableModel modelo= (DefaultTableModel) tblLivro.getModel();
String[] linha=new String[7];
linha[0]=txtTitulo.getText();
linha[1]=txtAutor.getText();
linha[2]=txtEditora.getText();
linha[3]=txtGenero.getText();
linha[4]=txtEdicao.getText();
linha[5]=txtISBN.getText();
linha[6]=txtTipo.getText();
modelo.addRow(linha);
tblLivro.setModel(modelo);
limpar();
}
////public void definirModelo(String[] linhas){
//// PerLivro perlivro=new PerLivro();
////DefaultTableModel modelo=(DefaultTableModel) tblLivro.getModel();
////
//// modelo.addRow(linhas);
//// tblLivro.setModel(modelo);
////}
//public ArrayListlistar(){
// String sql=“select * from livros”;
// try{
// Connection conn=Conexao.getConexao();
// PreparedStatement pst=conn.prepareStatement(sql);
// ResultSet rs=pst.executeQuery();
// List livros= new ArrayList();
//
// Livro livro;
// while(rs.next()){
// livro=new Livro();
// livro.setTitulo(rs.getString(1));
// livro.setAutor(rs.getString(2));
// livro.setEditora(rs.getString(3));
// livro.setGenero(rs.getString(4));
// livro.setIsbn(rs.getString(5));
// livro.setEdicao(rs.getInt(6));
// livro.setTipo(rs.getString(7));
// livros.add(livro);
// String[] linhas=new String[7];
// linhas[0]=livro.getTitulo();
// linhas[1]=livro.getAutor();
// linhas[2]=livro.getEditora();
// linhas[3]=livro.getGenero();
// linhas[4]=livro.getIsbn();
// linhas[5]=String.valueOf(livro.getEdicao());
// linhas[6]=livro.getTipo();
// DefaultTableModel modelo=(DefaultTableModel) tblLivro.getModel();
// modelo.addRow(linhas);
//
//
//
//
//
// }
//
// return (ArrayList) livros;
//
// }catch(Exception e){
//
// System.out.println("Erro ao gravar livro "+e.toString());
// return null;
// }
// }
}[/code]
Classe PerLivro
[code]package persistencia;
import fronteira.TelaLivro;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
import modelo.Livro;
public class PerLivro {
String[] linhas=new String[7];
public void excluir(String isbn) {
String sql="delete from livros where Isbn=?";
try{
Connection conn=Conexao.getConexao();
PreparedStatement pst=conn.prepareStatement(sql);
pst.setString(1,isbn);
pst.executeUpdate();
}catch(Exception e){
System.out.println("Erro excluir: "+e.toString());
}
}
public void gravar(Livro livro){
String sql="insert into livros(Titulo,Autor,Editora,Genero,Isbn,Edicao,Tipo)values(?,?,?,?,?,?,?)";
try{
Connection conn=Conexao.getConexao();
PreparedStatement pst=conn.prepareStatement(sql);
pst.setString(1,livro.getTitulo());
pst.setString(2, livro.getAutor());
pst.setString(3, livro.getEditora());
pst.setString(4, livro.getGenero());
pst.setString(5, livro.getIsbn());
pst.setInt(6, livro.getEdicao());
pst.setString(7, livro.getTipo());
pst.executeUpdate();
}catch(Exception e){
System.out.println("Erro ao gravar livro "+e.toString());
}
}
public ArrayListlistar(){
String sql=“select * from livros”;
try{
Connection conn=Conexao.getConexao();
PreparedStatement pst=conn.prepareStatement(sql);
ResultSet rs=pst.executeQuery();
ArrayList livros= new ArrayList();
Livro livro;
while(rs.next()){
livro=new Livro();
livro.setTitulo(rs.getString(1));
livro.setAutor(rs.getString(2));
livro.setEditora(rs.getString(3));
livro.setGenero(rs.getString(4));
livro.setIsbn(rs.getString(5));
livro.setEdicao(rs.getInt(6));
livro.setTipo(rs.getString(7));
livros.add(livro);
linhas[0]=livro.getTitulo();
linhas[1]=livro.getAutor();
linhas[2]=livro.getEditora();
linhas[3]=livro.getGenero();
linhas[4]=livro.getIsbn();
linhas[5]=String.valueOf(livro.getEdicao());
linhas[6]=livro.getTipo();
// TelaLivro telalivro=new TelaLivro();
// telalivro.definirModelo(linhas);
}
return livros;
}catch(Exception e){
System.out.println("Erro ao gravar livro "+e.toString());
return null;
}
}
public void alterar(String isbn, String titulo, int edicao, String genero, String tipo, String autor, String editora){
String sql="UPDATE livros SET Titulo='?',Autor='?',Editora='?',Genero='?',Isbn=?,Edicao='?',Tipo='?' WHERE Isbn=?";
try{
Connection conn=Conexao.getConexao();
PreparedStatement pst=conn.prepareStatement(sql);
pst.setString(1,titulo);
pst.setString(2,autor);
pst.setString(3,editora);
pst.setString(4,genero);
pst.setString(5,isbn);
pst.setInt(6,edicao);
pst.setString(7,tipo);
pst.setString(8,isbn);
pst.executeUpdate();
}catch(Exception e){
System.out.println("Erro AO ALTERAR: "+e.toString());
}
}
}
[/code]
Classe Livro
[code]package modelo;
public class Livro {
String titulo, autor, genero, tipo, editora, isbn;
int Edicao;
public int getEdicao() {
return Edicao;
}
public void setEdicao(int Edicao) {
this.Edicao = Edicao;
}
public String getAutor() {
return autor;
}
public void setAutor(String autor) {
this.autor = autor;
}
public String getEditora() {
return editora;
}
public void setEditora(String editora) {
this.editora = editora;
}
public String getGenero() {
return genero;
}
public void setGenero(String genero) {
this.genero = genero;
}
public String getIsbn() {
return isbn;
}
public void setIsbn(String isbn) {
this.isbn = isbn;
}
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
}
[/code]