Alguem pode me ajudar nao consigo inserir dados

8 respostas
O

eu ja tentei de tudo, não so expert mas queria que alguem me ajuda-se .

import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;

public class cadcli extends JFrame 
 
 { 
	private JButton bbuscar;
	private JButton blimpar;
	private JButton bgravar;
	
	private JTextField tbuscar;
	private JTextField t1;
	private JTextField t2;
	private JTextField t3;
	private JTextField t4;
	private JTextField t5;

	private JLabel lbuscar;
	private JLabel l6;	
	private JLabel l1;
	private JLabel l2;
	private JLabel l3;
	private JLabel l4;
	private JLabel l5;
	
	private Icon carro;
	private Connection conn;
	

       public cadcli()
 	   {
		super("CADASTRO DE CLIENTE"); 
		Container ct = getContentPane(); 
		ct.setLayout(null); 
		
	try
         {
	   
	   			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
		 }
		 	catch (ClassNotFoundException e)
        		{
        	    JOptionPane.showMessageDialog(null,"Driver nao encontrado ");
        		}
		try
		 {
            String data = "jdbc:odbc:bd";
		 	Connection conn = DriverManager.getConnection(data,"","");
	   			
		 }catch (Exception sqlEx)
		 {
		 	JOptionPane.showMessageDialog(null,"Conexao falhou");	
		 }
		
						
				
		l2 = new JLabel ("NOME");
		l2.setBounds(10,85,100,20);
		ct.add(l2);	
		
		t1 = new JTextField("");
		t1.setBounds(80,85,250,20);
		ct.add(t1);	
		          
		
		blimpar = new JButton("LIMPAR");
		blimpar.setBounds(10,230,100,20);
		ct.add(blimpar);		

		bgravar = new JButton("GRAVAR");
		bgravar.setBounds(225,230,100,20);
		bgravar.addActionListener(
			new ActionListener () {
				public void actionPerformed( ActionEvent event)
				{
					try
						{
						PreparedStatement st = conn.prepareStatement("Select Nome from cliente where Nome = ?");
						st.setString(1,t1.getText());
						ResultSet rs = st.executeQuery();
						if (rs.next())
							{
							JOptionPane.showMessageDialog(null,"Este codigo ja existe");
							}
						else
							{
							PreparedStatement vs = conn.prepareStatement("insert into Cliente values (?)");
							vs.setString(1,t1.getText());
							vs.executeUpdate();
							JOptionPane.showMessageDialog(null,"Dado inserido com exito!");
							}
						rs.close();
				} catch(Exception sqlEX) {JOptionPane.showMessageDialog(null,"Dado nao inserido!");}
				
				limpar();
				}
				}
			
		
			);
		ct.add(bgravar);
		
		setSize(800,800);
		setVisible(true);
	 
	}	
	
	
			
		
	
	protected void limpar()
	{
		t1.setText (" ");
	
	}
		
	public static void main(String args [])
	
{
		cadcli F = new cadcli();
		F.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}	

}

8 Respostas

O

na hora que aperto gravar ele cai direot no catch… falando DADO NÃO INSERIDO…
se alguem ajudar eu agradeço.

Rafael_Steil

Nao se usa sun.jdbc.odbc.JdbcOdbcDriver

Com qual banco de dados voce esta trabalhando?

Rafael

O

então como eu sou iniciante estou usando o access mesmo,
se souber de algum banco facil deusar o postgres tentei instalar mas nao consigo criar um bd nele.

fiz no access e coloquei ele no dsn com nome de bd

A

Ai cara olha essa conexão aki

//ACCESS

String dsn     = jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/aden/clientes.mdb;

String usuario = “”;

String senha   = “”;

String sql     = “”;

Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”).newInstance();
Connection con = DriverManager.getConnection(dsn,usuario,senha);

//Conexão com MYSQL

public static Connection getConnectionMysql() throws Exception {

Connection conn = null;

try {

Class.forName(com.mysql.jdbc.Driver);

conn = DriverManager.getConnection(jdbc:mysql://localhost/mysql”, “usuario”, “senha”);

} catch (Exception e) {

throw new Exception("Erro ao obter conexão via DriverManager: "	+ e.getMessage());
}
	return conn;
}


//Conexão com Hsqldb
public static Connection getConnectionHsqldb() throws Exception {
	Connection conn = null;
	try {
		Class.forName("org.hsqldb.jdbcDriver");
		conn = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost", "usuario", "senha");
		} catch (Exception e) {
		throw new Exception("Erro ao obter conexão via DriverManager: "	+ e.getMessage());

	}
	return conn;
}
//Conexão com Oracle

public static Connection getConnectionOracle() throws Exception {

Connection conn = null;

try {

Class.forName(oracle.jdbc.driver.OracleDriver);

//conn = DriverManager.getConnection(“jdbc:oracle:thin:@192.168.60.10:1521:BANCO”, “usuario”, “senha”);

} catch (Exception e) {

throw new Exception("Erro ao obter conexão via DriverManager: "	+ e.getMessage());
}
	return conn;
}

cara é só vc escolher o tipo de conexão q vc quer fazer
falow Abraço

O

oi então ele esta conectando normal , mas so que tem algo errado na hora de inserir os dados q nao consigo.
na hroa que executa o botao bgravar ele nao entra no try e cai no catch…

loganwlogan

Amigo olquinho vou te dar duas idéias 1º colocque a variável da exceção em um System.out.println para vc ver realmente a exceção que ele apresenta e talvez tbm fosse interessante que vc separece o código de tela e o de banco de dados em 2 classe diferentes, fica mais fácil até pra vc mesmo achar os erros.

[]´s

Logan

fabio.nascimento

Colega, seguinte

Ele está entrando sim no “try”, e é por isso que ele sai pelo “catch”.

Faz como o amigo ai de cima falou vai dando “System.out.println” nas sua variaveis para verificar o conteudo de cada uma.

Dessa forma voce vai verificar o conteudo desse campo “t1.getText()”,
e assim por diante.

Vai postando así os resultados, pois o erro pode tá no PrepareStatement mesmo hein.

Falows

Fabio Nascimento

O

caros colegas, obrigado pela dica, não achei o erro mas eu arrumei rs…

Criado 28 de outubro de 2006
Ultima resposta 1 de nov. de 2006
Respostas 8
Participantes 5