Alguem pode me ajudar nao consigo inserir dados

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);
	}	

}

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

Nao se usa sun.jdbc.odbc.JdbcOdbcDriver

Com qual banco de dados voce esta trabalhando?

Rafael

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

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

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…

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

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

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