Alguem me ajuda banco de dados e java

22 respostas
xxjamisxx
[list]package ctrl;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import view.frmcliente;
import model.dados;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import javax.swing.text.StyledEditorKit.BoldAction;

import dao.*;
public class cadastraadapter implements ActionListener {
  private dados Dados; 
private Statement stml;
private frmcliente tela;



public cadastraadapter(frmcliente frmcliente) {
	// TODO Auto-generated constructor stub


	this.tela= frmcliente;
	
}

public void actionPerformed(ActionEvent arg0) {
	// TODO Auto-generated method stub
	 String name,sobre,bairro,estado; 
	 int idade,cep ;
	 
	 name=tela.getnome();
	 sobre=tela.getsobrenome();
	 bairro=tela.getbairro();
	 estado=tela.getestado();
	 idade=tela.getcep();
	 cep=tela.getcep(); 
   
	
	 try 
	 { 
		stml=conexao.getstatement();
		 boolean verifica = stml.execute("insert into cadastro values(name,sobre,idade,bairro,cep,estado)");//erro nesta alinha 
		 if (!verifica) 
		 {
			 JOptionPane.showMessageDialog(null,"cadastro efetuado com sucesso");
		 }
		 else 
		 JOptionPane.showMessageDialog(null,"nao foi possivel efetua seu cadastro");
	 }
	 catch(SQLException e)
	 {
		 e.printStackTrace();
	     JOptionPane.showMessageDialog(null,"Erro:ploblemas na estruçao sql"); 
	   
	 }
    
}
alguem poderia ne ajuda aqui esta dando erro no boolean ele da parametro nao encotrado nao sei pq fiz uma classe separada a da conexao se puder me ajuda agradeço

22 Respostas

A

Boa noite,
Como está o seu banco de dados e em que base (MYSQL, etc)?
Qual é a sua classe de conexão?

A

No eu método para acrescentar idade está retornando o cep “idade=tela.getcep();”…
Colocam um System.out.Println(para os valores que estão dentro da linha de execução do banco e veja se tem algum parâmetro não recuperado…
Por último verifica a ordem em que estão os campos no banco de dados pois a ordem influencia, por exemplo se a idade vier depois do cep e na execução vc estiver colocando antes…

xxjamisxx

package dao;

import java.sql.Connection;
import java.sql.Statement;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;
public class conexao {

private static String url ="jdbc:oracle:[email protected]:1521:XE";
private static String senha="guilherme";
private static String usuario="123";
private static Connection con = null;
private conexao(){};
public static Statement getstatement()
{
try
{

if(con == null)
{
Class.forName("oracle.jdbc.driver.OracleDriver");
con= DriverManager.getConnection(url, usuario, senha);
}
return con.createStatement();
}


catch(SQLException e)
{
e.printStackTrace();
JOptionPane.showMessageDialog(null,"Erro com parametro de conexao ");
return null;
}
catch(ClassNotFoundException e)
{
e.printStackTrace();
JOptionPane.showMessageDialog(null,"Erro:classe de conexao do oracle nao encotrado");
return null;
}

}
}[code]

desculpa demora tava vendo um video
esta tudo certo
e idade esta certo tambem ja trasnfomei para inteiro
mais e primiera vez que uso bando de dados com
interface gui
meo banco de dados esta em oracle

xxjamisxx

como assim parametro nao recuperado ???

A

Verifica se algum chamado daquele tela.get… está por acaso vindo nulo ou vazio, pois de repente o teu campo noi banco não está preparado para isso…

A

Veja se a conexão não é nula…

A

Desculpa não tinha visto o erro na linha para executar vc tem que fechar as aspas duplas antes de cada parâmetro… exemplo:
(“insert into … values(“name+”,”+idade+","+ cep"+"…
entendeu?

A

AH! tem um sinal de + antes do primeiro parâmetro pois vc está passando uma String de comando para o banco e uma String concatenda (baseada nos parâmetros que vc recuperou da tela)…tenta aí…

xxjamisxx

fmz vou tenta

xxjamisxx

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at ctrl.cadastraadapter.actionPerformed(cadastraadapter.java:45)
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.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)[code]

nao deu certo so da este errou =/

A
Vamos ver  vc colocou assim?

try

{

stml=conexao.getstatement();
// para verificar se tem algum parâmetro nulo...
     System.out.println("insert into cadastro values("+name+","+sobre+","+idade+","+bairro+","+cep+","+estado+")");

      boolean verifica = stml.execute("insert into cadastro values("+name+","+sobre+","+idade+","+bairro+","+cep+","+estado+")");
      if (!verifica)   
      {  
          JOptionPane.showMessageDialog(null,"cadastro efetuado com sucesso");  
      }  
      else   
      JOptionPane.showMessageDialog(null,"nao foi possivel efetua seu cadastro");  
  }  
  catch(SQLException e)  
  {  
      e.printStackTrace();  
      JOptionPane.showMessageDialog(null,"Erro:ploblemas na estruçao sql");   
      
  }
A

Amigo fiz por aqui e deu certo , mas meu banco é MYSQL… veja se vc utiliza um outro comnado o executeUpdate() que também pede uma String mas ele é mais maleável…
Qualquer coisa é só escrever…

xxjamisxx

ploblema que meo banco de dado e oracle

Carlos.JavaVB

opa cara blz
entao essa linha:
boolean verifica = stml.execute(“insert into cadastro values(name,sobre,idade,bairro,cep,estado)”);//erro nesta alinha
esses name,sobre,idade,bairro,cep,estado sao variaveis por que se forem deixa assim:
boolean verifica = stml.execute(“insert into cadastro values(’” + name + “’,’” +sobre"’,’"+idade+"’,’"+bairro"’,’"+cep+"’,’"+estado+"’)");
ai ve se vai
flw

xxjamisxx

cara valew mais
ja tentei concatenar tambem e nao deu certo
=/
o oracle e saco mesmo
so da trabalho
nao e facil igual mysql :cry:

xxjamisxx

vale cara mais eu ja tentei concatena mais
nao deu certo da erro
na mesma linha
o oracle nao aceita as
coisa igual mysql :cry:

pmlm

É melhor usar PreparedStatement

PreparedStatement pstmt = conexao.prepareStatement("insert into cadastro values(?,?,?,?,?,?)");
pstmt.setString(1, name);
pstmt.setString(2, sobre);
pstmt.setString(3, bairro);

(...)

boolean verifica = pstmt.execute();
xxjamisxx

VLW CARA boa dica
vou tenta :lol: :roll:

xxjamisxx
package dao;

import java.sql.Connection;
import java.sql.Statement;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import java.sql.PreparedStatement;
import ctrl.cadastraadapter;
public class conexao {

	
	private static String url ="jdbc:oracle:[email protected]:1521:XE";
	private static String senha="123";
	private static String usuario="guilherme";
    private static Connection con = null; 
	private conexao(){};
  public static Connection getstatement()
	{
		try
	{   
			
		if(con == null)
		{
			Class.forName("oracle.jdbc.driver.OracleDriver");
		    con= DriverManager.getConnection(url,"guilherme","123");
		   }
		   return con;
		}
		 
	
   catch(SQLException e)
   {   
		
	   JOptionPane.showMessageDialog(null,"Erro com parametro de conexao "); 
	   return null;
   }
   catch(ClassNotFoundException e)
   { 
		 e.printStackTrace();
	   JOptionPane.showMessageDialog(null,"Erro:classe de conexao do oracle nao encotrado");
     return null;
   }
		
	}
}
xxjamisxx
package ctrl;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import view.frmcliente;
import model.dados;

import java.sql.PreparedStatement;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import javax.swing.text.StyledEditorKit.BoldAction; 
import java.sql.Connection;

import com.sun.org.apache.bcel.internal.generic.GETSTATIC;

import dao.*;
public class cadastraadapter implements ActionListener {
  private dados Dados; 

private frmcliente tela;
private Statement  stml;

public cadastraadapter(frmcliente frmcliente) {
	// TODO Auto-generated constructor stub


	this.tela= frmcliente;
	
}

public void actionPerformed(ActionEvent arg0) {
	// TODO Auto-generated method stub
	 String name,sobre,bairro,estado; 
	 int idade,cep ;
	 
	 name=tela.getnome();
	 sobre=tela.getsobrenome();
	 bairro=tela.getbairro();
	 estado=tela.getestado();
	 idade=tela.getidade();
	 cep=tela.getcep(); 
   
	 System.out.println("insert into cadastro values("+name+","+sobre+","+idade+","+bairro+","+cep+","+estado+")"); 

	 
	 String sql =("insert into cadastro values(?,?,?,?,?,?)");
	 
	 try 
	 { 
	      Connection  con  = conexao.getstatement();
	     PreparedStatement verifica = con.prepareStatement(sql);                              
		
		verifica.setString(1,name);
		verifica.setString(2,sobre);
		verifica.setInt(3,idade);
		verifica.setString(4,bairro);
		verifica.setInt(5,cep);
		verifica.setString(6,estado);
	    verifica.executeUpdate();
		
		
		
		
		//if (!verifica1) 
		// {
		//	 JOptionPane.showMessageDialog(null,"cadastro efetuado com sucesso");
		// }
		// else 
		// JOptionPane.showMessageDialog(null,"nao foi possivel efetua seu cadastro");
	 }
 catch(SQLException e)
	{
	 e.printStackTrace();
	     JOptionPane.showMessageDialog(null,"Erro:ploblemas na estruçao sql"); 
	   
	 }
    
}
	
 
}

ae esta minha duas classes uma de conexao e a outra do botao adapater
queria saber o que esto errado
ow se nao esto fazendo do modo certo
ele so da erro de parametro do sql
da classe de conexao
mais mostra o erro na classe do adapter

PreparedStatement verifica = con.prepareStatement(sql);

so da erro nesta maldita linha ¬¬
com banco de dados esta tudo certo
ja inseri
com outra conexao

pmlm

Esta linha está a mais. Connection con = conexao.getstatement();

No teu caso já tens a variavel conexao, deves usar conexao em vez de con (apesar de eu não fazer a mínima ideia por esse código de onde vem essa conexao)

PreparedStatement verifica = conexao.prepareStatement(sql);
xxjamisxx

conexao.getstatement ();

e da classe conexao
e o metodo getstatement

Criado 25 de outubro de 2009
Ultima resposta 28 de out. de 2009
Respostas 22
Participantes 4