Gravar dados em uma jtable

2 respostas
D

ola estou tentando gravar dados de uma tabela no banco de dados o codigo pra gravar os dados da tabela esta no botao2 mais esta dando erro alguém poderia me ajudar?

segue abaixo o código

import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.DecimalFormat;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import Modelo.VendaProduto;
//import controle.Utilitarios;

// Ctrl+Shift+F => Formata o código
// Ctrl+A e Ctrl+i => Formata a seleção

public class EfetuarVenda extends JFrame {
	private JLabel rotulo1, rotulo2, rotulo3,rotulo4,rotulo5,rotulo6,rotulo7,rotulo8,rotulo9;
	private JTextField caixa1, caixa2, caixa3,caixa4,caixa5,caixa6,caixa7,caixa8,caixa9;
	private JButton botao1, botao2,botao3,botao4;
	private double total,valor,qtde,soma = 0; 
	private static EntityManagerFactory fabricaDeEntidades = null;

	private static EntityManager gerenciador = null;
	
	  DecimalFormat df= new DecimalFormat(",##0,00");

	public EfetuarVenda(EntityManagerFactory fabricaDeEntidades2, EntityManager gerenciador2) {
		super("Vendas");
		Container tela = getContentPane();

		tela.setLayout(null);
		fabricaDeEntidades=fabricaDeEntidades2;
		gerenciador=gerenciador2;
	        
		rotulo1 = new JLabel("Codigo");
		rotulo2 = new JLabel("Cliente:");
		rotulo3 = new JLabel("Total:");
		rotulo4 = new JLabel("Data:");
		rotulo5 = new JLabel("Código:");
		rotulo6 = new JLabel("Descrição:");
		rotulo7 = new JLabel("Qtde:");
		rotulo8 = new JLabel("Valor:");
		rotulo9 = new JLabel("Total:");

		caixa1 = new JTextField();
		caixa2 = new JTextField();
		caixa3 = new JTextField();
		caixa3.setText("0.00");
		caixa4 = new JTextField();
		caixa5 = new JTextField();
		caixa6 = new JTextField();
		caixa7 = new JTextField();
		caixa8 = new JTextField();
		caixa9 = new JTextField();

		botao1 = new JButton("Ok");
		botao2 = new JButton("Salvar Nota de Venda");
		botao3 = new JButton("Calcular Orçamento");
		botao4 = new JButton("Calcular Pagamento");

		// coluna, linha, largura, altura
		rotulo1.setBounds(10, 19, 47, 20);
		caixa1.setBounds(68, 19, 40, 20);

		botao1.setBounds(630,100, 50, 20);
		botao2.setBounds(21, 510, 200, 50);
		botao3.setBounds(230, 510, 200, 50);
		botao4.setBounds(440, 510, 200, 50);

		rotulo2.setBounds(140, 19, 100, 20);
		caixa2.setBounds(190, 19, 232, 20);

		rotulo3.setBounds(530, 50, 70, 60);
		caixa3.setBounds(560, 50, 120, 40);
		
		rotulo4.setBounds(10, 60, 100, 20);
		caixa4.setBounds(68, 60, 179, 20);
		
		rotulo5.setBounds(10,100, 47, 20);
		caixa5.setBounds(68,100, 40, 20);
		
		rotulo6.setBounds(120, 100, 100, 20);
		caixa6.setBounds(190, 100, 180, 20);
		
		rotulo7.setBounds(370, 100, 80, 20);
		caixa7.setBounds(410, 100, 50, 20);
		
		rotulo8.setBounds(460, 100, 50, 20);
		caixa8.setBounds(500,100, 50, 20);
		
		rotulo9.setBounds(550, 100, 50, 20);
		caixa9.setBounds(580, 100, 50, 20);
		
		tela.add(rotulo1);
		tela.add(caixa1);

		tela.add(rotulo2);
		tela.add(caixa2);

		tela.add(botao1);
		tela.add(botao2);
		tela.add(botao3);
		tela.add(botao4);

		tela.add(rotulo3);
		tela.add(caixa3);
		
		tela.add(rotulo4);
		tela.add(caixa4);
		
		tela.add(rotulo5);
		tela.add(caixa5);
		
		tela.add(rotulo6);
		tela.add(caixa6);
		
		tela.add(rotulo7);
		tela.add(caixa7);
		
		tela.add(rotulo8);
		tela.add(caixa8);
		
		tela.add(rotulo9);
		tela.add(caixa9);
		
		final DefaultTableModel modelo;

	    modelo = new 
	    DefaultTableModel();
	    
	    // constrói a tabela
	    JTable tabela = new JTable(modelo);
	    
	    // Cria duas colunas
	    modelo.addColumn("Código");
	    modelo.addColumn("Descrição");
	    modelo.addColumn("Qtde");
	    modelo.addColumn("Valor");
	    modelo.addColumn("Total");
	    
	    JScrollPane scrollPane = new JScrollPane(tabela);
	    scrollPane.setBounds(20, 150, 640, 350);
		tela.add(scrollPane);
		
		botao1.addActionListener(new ActionListener() {     
		            public void actionPerformed(ActionEvent e) {     
		                // Persistir dados     
		                // inclusão de um novo registro
		            	//double total,valor,qtde,soma = 0;     
		                valor=Double.parseDouble(caixa8.getText());     
		                    qtde=Double.parseDouble(caixa7.getText());     
		                    total=(qtde*valor);   
		                    soma+=(qtde*valor);
		                    //Esse + (antes do igual) vai acumular os valores em soma.  
		                    caixa3.setText(""+soma);     
		                    caixa9.setText(""+total);     
		                modelo.addRow(new String [] {caixa5.getText(), caixa6.getText(), caixa7.getText(), caixa8.getText(), caixa9.getText()} );
		                caixa1.setText("");
		                caixa2.setText("");          
		                caixa4.setText("");
		                caixa5.setText("");
		                caixa6.setText("");
		                caixa7.setText("");     
		                caixa8.setText("");   
		                caixa9.setText("");
		            }  
		        });  

				botao2.addActionListener(new ActionListener() {     
		            public void actionPerformed(ActionEvent e) {
		            	botao2.addActionListener(new ActionListener() {     
		                    public void actionPerformed(ActionEvent e) {     
		                        JTable tabela = new JTable(modelo);     
		                             int linha = modelo.getRowCount();     
		                             int col = modelo.getColumnCount();     
		                            String sql ="INSERT into Venda (id_venda,descricao,qtde,valor,total) values ('"+     
		                            caixa5.getText()+"','"+     
		                            caixa6.getText()+"','"+     
		                            caixa7.getText()+"','"+     
		                            caixa8.getText()+"','"+     
		                            caixa9.getText()+"','"+     
		                                        modelo.getValueAt(0,0)+"','"+     
		                                        modelo.getValueAt(0,1)+"','"+     
		                                        modelo.getValueAt(0,2)+"','"+     
		                                        modelo.getValueAt(0,3)+"','"+     
		                                        modelo.getValueAt( 0,4)+"')";     
		             
		                        JOptionPane.showMessageDialog(null,"Gravação realizada com sucesso");     
		             
		                        }     
		                    });     
		        botao2.addActionListener(new ActionListener() {  
		                    public void actionPerformed(ActionEvent e) {  
		                        JTable tabela = new JTable(modelo); 
		                        int linha = modelo.getRowCount();   
	                             int col = modelo.getColumnCount();
		                        try   
		                        {   
		                        	
		                           Class.forName("org.postgresql.Driver");   
		                           Connection con = DriverManager.getConnection ("jdbc:postgresql:teste","postgres","postgres");   
		                        System.out.println("Conexao OK");   
		                        Statement st = con.createStatement();   
		                        ResultSet rs = st.executeQuery("INSERT into Venda (id_venda,descricao,qtde,valor,total) values ('"+   
			                            caixa5.getText()+"','"+  
			                            caixa6.getText()+"','"+  
			                            caixa7.getText()+"','"+  
			                            caixa8.getText()+"','"+  
			                            caixa9.getText()+"','"+
			                            modelo.getValueAt(0,0)+"','"+   
		                                modelo.getValueAt(0,1)+"','"+   
			                            modelo.getValueAt(0,2)+"','"+   
			                            modelo.getValueAt(0,3)+"','"+   
			                           modelo.getValueAt( 0,4)+"')");     
 
		                        	 JOptionPane.showMessageDialog(null,"Gravação realizada com sucesso");    
		                        	st.close();   
		                        	con.close();   
		                        	}catch (Exception e1){   
		                        	e1.printStackTrace();   
		                        	return;   
		                        	}}}}
		            });     			       
	botao3.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent e) {
			// fecha a janela
			CalculcarOrcamento c = new CalculcarOrcamento(fabricaDeEntidades, gerenciador);
    }
      });
	botao4.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent e) {
			// fecha a janela
			CalcularPagamento c = new CalcularPagamento(fabricaDeEntidades, gerenciador);
    }
      });

// setSize(largura, altura);
setSize(700, 610);
setVisible(true);
setLocationRelativeTo(null);
}

	public static void main(String[] args) {

		fabricaDeEntidades = Persistence
				.createEntityManagerFactory("TurmaN40PostgreSQL");

		gerenciador = fabricaDeEntidades.createEntityManager();

		EfetuarVenda app = new EfetuarVenda(fabricaDeEntidades, gerenciador);
		app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

	}

		}

o erro é esse

Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Syntax error, insert ")" to complete MethodInvocation
Syntax error, insert ";" to complete Statement

at EfetuarVenda.(EfetuarVenda.java:234)
at EfetuarVenda.main(EfetuarVenda.java:262)

meus getters e setters

package Modelo;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.swing.table.DefaultTableModel;

@Entity
public class VendaProduto {
@Id
	private DefaultTableModel codigo;
	private DefaultTableModel descricao;
	private DefaultTableModel qtde;
	private DefaultTableModel valor;
	private DefaultTableModel total;
	public DefaultTableModel getCodigo() {
		return codigo;
	}
	public void setCodigo(DefaultTableModel codigo) {
		this.codigo = codigo;
	}
	public DefaultTableModel getDescricao() {
		return descricao;
	}
	public void setDescricao(DefaultTableModel descricao) {
		this.descricao = descricao;
	}
	public DefaultTableModel getQtde() {
		return qtde;
	}
	public void setQtde(DefaultTableModel qtde) {
		this.qtde = qtde;
	}
	public DefaultTableModel getTotal() {
		return total;
	}
	public void setTotal(DefaultTableModel total) {
		this.total = total;
	}
	public DefaultTableModel getValor() {
		return valor;
	}
	public void setValor(DefaultTableModel valor) {
		this.valor = valor;
	}
}

2 Respostas

D

desfarce eu tinha repetido o botao agora é outro problema

botao2.addActionListener(new ActionListener() {  
		                    public void actionPerformed(ActionEvent e) {  
		                        JTable tabela = new JTable(modelo); 
		                        int linha = modelo.getRowCount();   
	                             int col = modelo.getColumnCount();
		                        try   
		                        {   
		                        	
		                           Class.forName("org.postgresql.Driver");   
		                           Connection con = DriverManager.getConnection ("jdbc:postgresql:TurmaN40","postgres","postgres");   
		                        System.out.println("Conexao OK");   
		                        Statement st = con.createStatement();   
		                        ResultSet rs = st.executeQuery("INSERT into VendaProduto (codigo,descricao,qtde,valor,total) values ('"+     
			                            modelo.getValueAt(0,0)+"','"+   
		                                modelo.getValueAt(0,1)+"','"+   
			                            modelo.getValueAt(0,2)+"','"+   
			                            modelo.getValueAt(0,3)+"','"+   
			                           modelo.getValueAt(0,4)+"')");     
 
		                        	 JOptionPane.showMessageDialog(null,"Gravação realizada com sucesso");    
		                        	st.close();   
		                        	con.close();   
		                        	}catch (Exception e1){   
		                        	e1.printStackTrace();   
		                        	return;   
		                        	}}
		            });

mais aonde ta fazendo consulta?

erro

org.postgresql.util.PSQLException: Nenhum resultado foi retornado pela consulta.
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:240)
at EfetuarVenda$2.actionPerformed(EfetuarVenda.java:194)
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$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.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)

ViniGodoy

Por favor, não duplique tópicos:

Criado 29 de julho de 2011
Ultima resposta 29 de jul. de 2011
Respostas 2
Participantes 2