Problemas com insert

6 respostas
S

estou tentando fazer um insert basico no banco...
so que o banco so recebe valor 0...

olha o codigo:
meu DAO

public class DaoOrcamento implements IDAO {
  public boolean inserirItens(DomainObject domainObject) {
   

        try {



            Orcamento orcamento = new Orcamento();
            Connection conn = Conexao.getConnection();

          String sql = "INSERT INTO itens_orcamento VALUES (?)";



            PreparedStatement pst = conn.prepareStatement(sql);

            Produto produto = new Produto();


            pst.setInt(1, produto.getId());
            orcamento.setProduto(produto);

           
            pst.executeUpdate();


            pst.close();

            //Fechando a conexão
            conn.close();
  


        } catch (Exception e) {
            e.printStackTrace();
            JOptionPane.showMessageDialog(null, e.getMessage());

        }
      return true;
aqui minha view
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
   try{
        Orcamento orcamento = new Orcamento();


Produto produto = new Produto();
produto.setId(Integer.parseInt(tftotal.getText()));
orcamento.setProduto(produto);


         IFachada fachada = new Fachada();

            fachada.setDomainObject(orcamento);
                fachada.inserirItens();

controle:[code]

public class Fachada extends UnicastRemoteObject implements IFachada {

private DomainObject domainObject;
private Map daos;

public Fachada() throws RemoteException {

daos = new HashMap(); // dominio = new HashMap daos.put(Orcamento.class.getName(), new DaoOrcamento());

public boolean inserirItens() throws RemoteException{

IDAO dao = daos.get(domainObject.getClass().getName());

if (dao.inserirItens(domainObject)) {
return true;
} else {

return false;}
JOptionPane.showMessageDialog(null, "ok");
}catch(Exception e){

6 Respostas

S

[quote=souzajhonatan]estou tentando fazer um insert basico no banco...
so que o banco so recebe valor 0...

olha o codigo:
meu DAO

public class DaoOrcamento implements IDAO {
  public boolean inserirItens(DomainObject domainObject) {
   

        try {



            Orcamento orcamento = new Orcamento();
            Connection conn = Conexao.getConnection();

          String sql = "INSERT INTO itens_orcamento VALUES (?)";



            PreparedStatement pst = conn.prepareStatement(sql);

            Produto produto = new Produto();


            pst.setInt(1, produto.getId());
            orcamento.setProduto(produto);

           
            pst.executeUpdate();


            pst.close();

            //Fechando a conexão
            conn.close();
  


        } catch (Exception e) {
            e.printStackTrace();
            JOptionPane.showMessageDialog(null, e.getMessage());

        }
      return true;
aqui minha view
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
   try{
        Orcamento orcamento = new Orcamento();


Produto produto = new Produto();
produto.setId(Integer.parseInt(tftotal.getText()));
orcamento.setProduto(produto);


         IFachada fachada = new Fachada();

            fachada.setDomainObject(orcamento);
                fachada.inserirItens();
controle:
public class Fachada extends UnicastRemoteObject implements IFachada {

   
    private DomainObject domainObject;
    private Map<String, IDAO> daos;

    public Fachada() throws RemoteException {
    


        daos = new HashMap<String, IDAO>();      //  dominio = new  HashMap<String,
 daos.put(Orcamento.class.getName(), new DaoOrcamento());


public boolean inserirItens() throws RemoteException{

      IDAO dao = daos.get(domainObject.getClass().getName());

        if (dao.inserirItens(domainObject)) {
            return true;
        } else {

            return false;}
   JOptionPane.showMessageDialog(null, "ok");
   }catch(Exception e)}
Andergt6

Bom dia !!! na sua clausula inserte não esta faltando o nome do campo da tabela onde o dado será inserido? !!!

ex: " INSERT INTO tabela (CAMPO) VALUES (?) "

S

mais os ? num eh referente o primeiro campo em diante?

Andergt6

itens_orcamento é um campo da tabela ? por que se for vc não declarou o nome da tabela onde o dado vai ser inserido !!!

G

Encontrei 2 possiveis erros em seu código na sua classe DaoOrcamento…

linha 12 = String sql = "INSERT INTO itens_orcamento VALUES (?)"; linha 21 = pst.setInt(1, produto.getId());

Como resolver:

// você não passou o nome da coluna da tabela, suponhamos que a coluna seja a item faça o código abaixo.
String sql = "INSERT INTO itens_orcamento (item) VALUES (?)";


/* quando se faz um comando insert usando prepareStatement o primeiro parâmetro sempre será 0 e não em 1 como você está apontando,
mas quando se faz um select por exemplo se busca da 1 posição. Tente fazer como abaixo.*/
pst.setInt(0, produto.getId());

Espero ter ajudo

Att, Gaspar Barancelli Junior

S

consegui resolver… o problema era no dao na hora de setar produto…
vlw cara … Obrigado

Criado 5 de dezembro de 2009
Ultima resposta 5 de dez. de 2009
Respostas 6
Participantes 3