Passagem de Parâmetros no Insert

2 respostas
T
Gostaria de saber se tem como fazer algo parecido, por exemplo, trabalho com o delphi e, no insert eu coloco : INSERT INTO TABELA(Codigo, Nome)VALUES(:Cod, :Nome)

Parameters.ParamByName(Cod).Value:= edtCod.Text;

Parameters.ParamByName(Nome).Value:= edtNome.Text;

Tem como passar os parametros pelo no Java, ao invés de concatenar na linha de código do insert ?

2 Respostas

oberilo

Bom dia cara . . .

Acho que o PreparedStatement vai te ajudar !

PreparedStatement stmt = con.prepareStatement(“insert into contatos (nome,email,endereco) values (?,?,?)”);

// preenche os valores  
 stmt.setString(1, valor1);  
 stmt.setString(2, valor2);  
 stmt.setString(3, valor3);  

 // executa  
 stmt.execute();
F

Veja um exemplo de uma classe de conexão:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.swing.JOptionPane;


public class DAO {
    static final String url = "jdbc:mysql://localhost:3306/seubanco";
    static final String driver = "com.mysql.jdbc.Driver";
    static final String user = "usuario";
    static final String password = "sua senha";
    
    public void insLogAcesso(String vlicenca, String vdata, String vurl, String vusuario){
        Connection conn=null;
        PreparedStatement ps=null;
	String retorno = "nao";
        
        try {
            Class.forName(driver);
            } catch (ClassNotFoundException ex) {
                ex.printStackTrace();
                JOptionPane.showMessageDialog(null,"Houve uma falha ao carregar os drives do Banco de Dados, contacte o Administrador!!! "+ex);   
            }
        
        String sqlInsLogAcesso = "INSERT INTO LogAcesso VALUES (?,?,?,?)";

        try {
          	conn = DriverManager.getConnection(url,user,password);
                ps = conn.prepareStatement(sqlInsLogAcesso);

	ps.setString(1,vlicenca);
	ps.setString(2,vdata);
	ps.setString(3,vurl);
	ps.setString(4,vusuario);

                ps.executeUpdate();
		
                conn.close();
                ps.close();

        } catch (SQLException ex) {
            ex.printStackTrace();
            JOptionPane.showMessageDialog(null,"Houve uma falha, contacte o Administrador!!! "+ex);               
        }
    }
}

Observe os pontos de interrogação na string SQL. É como se fosse os “:parametro” as querys do Delphi, entendeu?
Já os “ps.setString” é como se fosse os “parambyname” do Delphi.

Qualquer coisa posta a dúvida aí!

Abraço

Marco Aurélio

Criado 30 de julho de 2010
Ultima resposta 30 de jul. de 2010
Respostas 2
Participantes 3