inserção de Dados no Banco - Dúvidas com VALUES [RESOLVIDO]

4 respostas
slashjvc

Alô Ninjas do GUJ...

Galera a minha dúvida é a seguinte:
Estou montando um sistema de Locadora, onde nele haverá consulta e cadastro de filmes, clientes, fornecedores e talz...

A conexão com o Banco eu já fiz...e criei esse método para inserção:

public boolean insereDados(String query) {
        
        Connection conn = null;
        
        try {
            
            Statement st = conn.createStatement();
            
            st.executeUpdate("INSERT INTO DBLOCADORA.TBCLIENTE (NOMECLIENTE,RG,CPF,CODCIDADE,ENDERECO,TELEFONE,SEXO,EMAIL,PREF_FILMES) VALUES()");
            
            st.close();
            
            conn.close();
        } catch (SQLException ex) {
            
            Logger.getLogger(Conexao.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        return true;
    
    }

O problema, é que eu não consigo escrever os valores..sendo que criei um frame onde os valores digitados ficarão guardados...

Desde já...Valeu pela ajuda!!!

4 Respostas

Rafael_Carneiro

Você tem que receber como parâmetro no método insereDados um objeto que terá os valores para inserção.

A

Aqui você vai tomar null pointer!

Connection conn = null;  
       
     try {  
           
         Statement st = conn.createStatement();

Para montar o SQL de inserir no BD

String sql = "INSERT INTO DBLOCADORA.TBCLIENTE (NOMECLIENTE,RG,CPF,CODCIDADE,ENDERECO,TELEFONE,SEXO,EMAIL,PREF_FILMES) VALUES('" + campo1 + "', '" + campo2 + ... + ", '"+ campo9 +  "')";
Statement st = conn.createStatement(sql);

Ou melhor

Connection con = null;
PreparedStatement ps = null;

try {
      con = getConnection();
      ps = con.prepareStatement("insert into TBCLIENTE (NOMECLIENTE,RG,CPF,CODCIDADE,ENDERECO,TELEFONE,SEXO,EMAIL,PREF_FILMESl) values (?, ?, ?, ?, ?, ?, ?, ?, ?)");
      ps.setString(1, campo1);
      ps.setString(2, campo2);
     ps.setString(3, campo3);
    ps.setDouble(4, campo4);
     // Outros campos, para cada tipo de dados o PreparedStatement tem um setTipo, onde tipo corresponde ao tipo java
mario.fts
public boolean insereDados(Cliente cliente) {
        
        Connection conn = null; //onde vc está iniciando a connection?
        PreparedStatement st = null;
        
        try {
        	
        	String sql = "INSERT INTO DBLOCADORA.TBCLIENTE " +
        			"(NOMECLIENTE,RG,CPF,CODCIDADE,ENDERECO,TELEFONE,SEXO,EMAIL,PREF_FILMES) " +
        			"VALUES(?,?,?,?,?,?,?,?,?)";
            
            st = conn.prepareStatement(sql);
            
            st.setString(1,cliente.getNome());
            //... e por ai vai
            
            st.executeUpdate();
            
        } catch (SQLException ex) {
            
            Logger.getLogger(Conexao.class.getName()).log(Level.SEVERE, null, ex);
        }finally{
        	//Sempre feche os recursos dentro de um finally.
        	try {
        		//Verifique se eles não são nulos antes, eu não estou fazendo isso por preguiça... =]
				conn.close();
				st.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
        }
        
        return true;
    
    }

É mais ou menos isso que vc precisa.
Claro que tem alguns problemas, mas já é um bom ponto de partida pra vc.

slashjvc

Putz mario.fts Mato a Pau mano!!!..

Agora saquei!!!..

Valeu pela ajuda Galera!!!

Criado 12 de janeiro de 2010
Ultima resposta 12 de jan. de 2010
Respostas 4
Participantes 4