Qual o problema pra inserir dados?

5 respostas
L

Boa tade pessoal, tô com um trauma mui grande, estou com pgm em java pra faculdade q tá dando um trauma q não consigo ver o erro, alguém pode dar um help? Aqui não tem como anexar né?, vou tentar colocar as classes q está dando trauma.

desde já mui grato.

package business;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
import presentation.*;
import dao.*;

public class ControleEntrada implements ActionListener {
	//mudar para a nova classe dao com acesso ao banco
	private EstacionamentoBD dao=EstacionamentoBD.getInstance();
	private static ControleEntrada singleton=null;
	private VisaoControlePrincipal vp;
	private VisaoEntrada1 ve;
	
	public static ControleEntrada getInstance(){
		if(singleton==null)
			singleton=new ControleEntrada();
			return singleton;
	}
	
	private ControleEntrada(){}
	
	public void configuraTela(VisaoEntrada1 ve){
		this.ve=ve;
		ve.setOuvinte(this);
	}
	public void habilitaVisaoEntrada(){
	   ve.setModal(true);
	   ve.limpaJanela();
	   ve.setVisible(true);
	}
	
	public void actionPerformed(ActionEvent eve) {
		String comando=eve.getActionCommand();
       		if(comando.equals("okE")){
			try{
			    if(dao.registrarEntrada(ve.leDados(),ve.getDate())){
				//if(dao.inserirCarro(ve.leDados())){//ieu
			    //dao.gravaLista();
				JOptionPane.showMessageDialog(null,"veículo inserido com sucesso");
			}
			    else{
				JOptionPane.showMessageDialog(null,"não foi possível inserir");
			}}
			catch(NumberFormatException exp){
				JOptionPane.showMessageDialog(null,"Dados de entrada incorretos!");
			}
			finally{
			ve.setVisible(false);
			}
		}
		 else if(comando.equals("carro")){
		    ve.habilitaCaixas(true,false);
			ve.getPortascc().setText("Portas:");
 			ve.setTipo("carro");
			
	     }else if(comando.equals("moto")){
				ve.getPortascc().setText("CC   :");
				ve.setTipo("moto");
				ve.habilitaCaixas(false,true);				
	     }
	     else if(comando.equals("LimparE")){
				ve.setVisible(false);				
			}
	}
}

ele tem q pegar desta classe aqui.

package dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import business.*;

//import business.entities.Projeto;

public class EstacionamentoBD {

	private static EstacionamentoBD singleton=null;
	Connection con;
	
	public static EstacionamentoBD getInstance(){
               if(singleton==null)
		            singleton=new EstacionamentoBD();
		            return singleton;
	}
	
	private EstacionamentoBD(){
		con=ConexaoBD.getConnection();
	}
	
	public boolean inserirCarro(Carro carro){
		String sql="";
		//Monta query de inserção
		sql+="INSERT INTO veiculo(placa,cor,campoId,tipoVeiculo) VALUES";
		sql += "(";
		sql += "'"+carro.getPlaca()+"'";
		sql += ",";
		sql += "'"+carro.getCor()+"'";
		sql += "(";
		sql += "'"+carro.getNumPortas()+"'";
		sql += ",";
		sql += "'"+carro.getTipo()+"'";
		sql += ")";	
		
		//Executa a query que foi montada
		try{
			Statement stmt=con.createStatement();
			stmt.executeUpdate(sql);
			stmt.close();
			return true;
		}
		catch (SQLException e)
		{
			// Houve algum erro, imprime a exeção, e retorna falso;
			e.printStackTrace();
			return false;
		}		
	}
	
	public boolean inserirMoto(Moto moto){
		String sql="";
		
		//Monta query de inserção
		sql+="INSERT INTO veiculo(placa,cor,campoId,tipoVeiculo) VALUES";
		sql += "(";
		sql += "'"+moto.getPlaca()+"'";
		sql += ",";
		sql += "'"+moto.getCor()+"'";
		sql += "(";
		sql += "'"+moto.getCc()+"'";
		sql += ",";
		sql += "'"+moto.getTipo()+"'";
		sql += ")";	
		
		//Executa a query que foi montada
		try{
			Statement stmt=con.createStatement();
			stmt.executeUpdate(sql);
			stmt.close();
			return true;
		}
		catch (SQLException e)
		{
			// Houve algum erro, imprime a exeção, e retorna falso;
			e.printStackTrace();
			return false;
		}	
	}
	
	public List<Veiculo> listar(){
		String sql ="";
		List<Veiculo> veiculos=new ArrayList<Veiculo>();
		
		//Monta query de busca
		sql +="SELECT * FROM veiculo";
		
		//Executa a query que foi montada
		try{
			Statement stmt=con.createStatement();
			ResultSet rs=stmt.executeQuery(sql);
			
			//Enquanto houverem alunos
			while(rs.next())
			{
				//Monta o veiculo encontrado
				String placa=rs.getString("placa");
				String cor=rs.getString("cor");
				int campoIdentificacao=rs.getInt("campoId");
				String tipoVeiculo=rs.getString("tipoVeiculo");
				
				if(tipoVeiculo.equals("c")){
					Carro car=new Carro();
					car.setCarro(placa, cor,campoIdentificacao);
					veiculos.add(car);
													
				}
				else{
					Moto moto=new Moto();
					moto.setMoto(placa, cor,campoIdentificacao);
					veiculos.add(moto);
				}
				
				rs.close();
				stmt.close();
			}
			return veiculos;
		}
		catch (SQLException e)
		{
			// Houve algum erro, imprime a exeção, e retorna nulo;
			e.printStackTrace();
			return null;
		}
		
	}
	
	}

mas tá pegando desssa outra

package dao;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
import presentation.VisaoControlePrincipal;
import business.Carro;
import business.Data;
import business.Moto;
import business.Veiculo;

public class EstacionamentoDao{
	private static EstacionamentoDao singleton=null;
	private VisaoControlePrincipal vc;
	
	public static EstacionamentoDao getInstance(){
		if(singleton==null)
			singleton=new EstacionamentoDao();
		    return singleton;
	}

	private List <Veiculo> lista;
	
	public EstacionamentoDao(){	
		lista=new ArrayList<Veiculo>();
	}
	
	public boolean registrarEntrada(Veiculo v, Data ent){
	   	try{
	   		v.setEntrada(ent);
	   		if(lista.add(v))
	   			return true;
	   		else
	   			return false;
	   	}catch(NullPointerException nfe){
	   		JOptionPane.showMessageDialog(null,"Não foi possível registar entrada!");
	   	}
	   return false;
   }	   
   public int registrarSaida(String p, Data sai){
	   	int preco=0;
	   	   	for (int i=0;i<lista.size();i++)
	   	   		if (lista.get(i).getPlaca().equals(p)){
	   			lista.get(i).setSaida(sai);
	   			preco = lista.get(i).calcularPreco();
	   			lista.remove(i);
	   			if(preco<0){
	   				JOptionPane.showMessageDialog(null,"Data de saída inválida!");
	   				return 0;
	   			}
	   			else	
	   				return preco;
	   		}
	   	JOptionPane.showMessageDialog(null,"Nao encontrado");
	   	return 0;
   }
   
   public String mostraVeiculos(){
	   String recebe=null;
	   String palavra="";
	   if(lista.isEmpty()){
		return "Estacionamento vazio!";
	   }
	   else{
		   for(int i=0;i<lista.size();i++){
			   recebe=lista.get(i).getPlaca();
			   recebe+="                     \t\t                  ";
			   recebe+=lista.get(i).getCor();
			   recebe+="\n";
			   palavra+=recebe;
		   }
		   return palavra;
	   }
   }

public Object getLista() {
	return lista;
}

public void setLista(List<Veiculo> lista) {
	this.lista = lista;
}

public void gravaLista(){
	try{
		FileOutputStream fos=new FileOutputStream("listaEstacionamento.bin");
		ObjectOutputStream oos=new ObjectOutputStream(fos);
		oos.writeObject(this.getLista());
	}
	catch(IOException e){
		e.printStackTrace();
		JOptionPane.showMessageDialog(null,"nao foi possivel gravar dados");
	}
}

public void recuperaLista(){
	try{
		FileInputStream fis=new FileInputStream("listaEstacionamento.bin");
		ObjectInputStream ois=new ObjectInputStream(fis);
		Object objeto=ois.readObject();
		lista=(List<Veiculo>) objeto;
		this.setLista(lista);
	}
	catch(IOException eve){
		JOptionPane.showMessageDialog(null, "Arquivo nao encontrado! \n O programa irá criar um arquivo.");
	}
	
	catch(ClassNotFoundException cnfe){
		JOptionPane.showMessageDialog(null, "Erro fatal");
		cnfe.printStackTrace();
		System.exit(1);
	}
}

public void exportaLista(VisaoControlePrincipal vc){
	int estado=0;
	try	{
		File arquivo=vc.escolheArquivo();
		if(!(arquivo==null)){
			
		//Abre um escritor sobre um arquivo escolhido
		FileWriter fw=new FileWriter(arquivo);
		BufferedWriter bw=new BufferedWriter(fw);
		
		//cria uma booleana que indica se está escrevendo a primeira linha
		boolean primeiraLinha=true;
					
		for(Veiculo v: lista ){
			
		//Recupera placa, cor,data integral e portas ou cilindradas
		String pl=v.getPlaca();
		String cor=v.getCor();
		int ano=v.getEntrada().getAno();
		int mes=v.getEntrada().getMes();
		int dia=v.getEntrada().getDia();
		int hora=v.getEntrada().getHora();
		int min=v.getEntrada().getMin();
		int seg=v.getEntrada().getSeg();
				
		if(v instanceof Carro){
			Carro c=new Carro();
			c=(Carro) v;
			estado=c.getNumPortas();
		}
		  		    	
		else{
			Moto m=new Moto();
			m=(Moto)v;
			estado=m.getCc();
		}
		
		if(primeiraLinha)
			primeiraLinha=false;
		else
			bw.newLine();
		
		//Escreve o conteudo do arquivo separado por vírgula
		bw.write(pl+","+cor+","+dia+","+mes+","+ano+","+hora+","+min+","+seg+","+estado);
		 				
		}
		JOptionPane.showMessageDialog(null,"Arquivo exportado!");
		bw.flush();
		bw.close();
		fw.close();
		}
	}
	catch(IOException e){
		e.printStackTrace();
		JOptionPane.showMessageDialog(null,"erro");
	}
}
	
public void importaLista(VisaoControlePrincipal vc){
	try{
		File arquivo=vc.escolheArquivo();
		if(! (arquivo==null)){
		//abre um leitor sobre o arquivo escolhido
		FileReader fr=new FileReader(arquivo);
		BufferedReader br=new BufferedReader(fr);
		
		//Declara uma variável para guardar cada linha
		String line;
		
		//Enquanto cada linha for diferente de nulo
		while((line=br.readLine())!=null){
			//Quebra a linha por "vírgula" e recupera dados
			String[]vet=line.split(",");
			String placa=vet[0];
			String cor=vet[1];
			int dataDia=Integer.parseInt(vet[2]);
			int dataMes=Integer.parseInt(vet[3]);
			int dataAno=Integer.parseInt(vet[4]);
			int dataHora=Integer.parseInt(vet[5]);
			int dataMin=Integer.parseInt(vet[6]);
			int dataSeg=Integer.parseInt(vet[7]);
			int portaCC=Integer.parseInt(vet[8]);
							
			/*verifico os objetos que serão retornados, através de um algoritmo implementado com a JComboBox que limita a entrada do usuário
			em relação ao número de portas*/
			    Data d=new Data();
			if(portaCC==4 || portaCC == 2 || portaCC == 5 || portaCC == 6){
				Carro vCar=new Carro();
				vCar.setCarro(placa, cor, portaCC);
				
				d.setData(dataDia, dataMes, dataAno, dataHora, dataMin, dataSeg);
				vCar.setEntrada(d);
				lista.add(vCar);
				JOptionPane.showMessageDialog(null, "Carro importado");
			}
			else{
				Moto moto=new Moto();
				moto.setMoto(placa, cor, portaCC);
				d.setData(dataDia, dataMes, dataAno, dataHora, dataMin, dataSeg);
				moto.setEntrada(d);
				lista.add(moto);
				JOptionPane.showMessageDialog(null, "moto importada");
			}	
		}
		br.close();
		fr.close();
	}
	}
		catch(IOException e){
			e.printStackTrace();
			JOptionPane.showMessageDialog(null, "erro ao importar dados");
		}
	}
}

5 Respostas

sydtpt

Suas querys estão erradas

String sql="";  
         //Monta query de inserção  
         sql+="INSERT INTO veiculo(placa,cor,campoId,tipoVeiculo) VALUES";  
         sql += "(";  
         sql += "'"+carro.getPlaca()+"'";  
         sql += ",";  
         sql += "'"+carro.getCor()+"'";  
         sql += "(";  //Aki é uma virgula e não um parenteses
         sql += "'"+carro.getNumPortas()+"'";  
         sql += ",";  
         sql += "'"+carro.getTipo()+"'";  
         sql += ")";

Linha 8

L

fala meu camrada, consertei o q falou, mas ainda assim qd executo o main, apresenta erro na classe EstacionamentoBd, e na classe Controle de entrada, o eclipse ainda acusa erro no registrarEntrada.
lá em baixo no console do eclipe dá os seguintes erros:

IWAV0055I Java Bean main.Exec started with the main method
Exception occurred during event dispatching:
java.lang.Error: Unresolved compilation problem:
The method registrarEntrada(Veiculo, Data) is undefined for the type EstacionamentoBD

at business.ControleEntrada.actionPerformed(ControleEntrada.java:38)
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.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at business.ControleEntrada.habilitaVisaoEntrada(ControleEntrada.java:31)
at business.ControleEstacionamento.actionPerformed(ControleEstacionamento.java:43)
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.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(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)

obrigado pela atenção

sydtpt

pelo que eu entendi vc criou um objeto dao da classe EstacionamentoBD , mas o metodo registrarEntrada(Veiculo, Data) é da classe EstacionamentoDao.
Isto ocorre na linha 38 do 1º código.

L

hnum entendi, vou tentar fazer essa alteração

obrigado

L

boa tarde pessal ainda estou com problemas neste pgm, eu tenho um simples q tá rodando, acredito q é algo no registro de entrada, mas não sei como tratar, alguém pode me ajudar?

public void actionPerformed(ActionEvent eve) {
		String comando=eve.getActionCommand();
       		if(comando.equals("okE")){
			try{
			    if(dao.[b][color=darkred]registrarEntrada[/color][/b](ve.leDados(),ve.getDate())){
			    //dao.gravaLista();
				JOptionPane.showMessageDialog(null,"veículo inserido com sucesso");
			}
			    else{
				JOptionPane.showMessageDialog(null,"não foi possível inserir");
			}}

o erro tá aê, o camarada q respondeu está certo, ele tá puxando o registrar entrada de outra classe, mas como incluo na outra?

abraços,
Luiz

Criado 3 de dezembro de 2007
Ultima resposta 4 de dez. de 2007
Respostas 5
Participantes 2