Array
(
)

Java / SQL / jdbc

Lucas
   - 07 mai 2015

Fala pessoal blz? bom andei navegando no site e encontrei um tópico falando sobre como fazer conexão java com banco de dados SQL
nesse link aqui : http://www.devmedia.com.br/java-classes-de-conexao-com-banco-de-dados-sql-server/23706
Estou fazendo um projeto de controle de estoque, eu utilizei esse link para fazer a conexão, porem ele cria também uma query e essa query é responsável por executar um comando sql.
Estou tentando inserir um produto no meu banco de dados através de um JFrame, no meu código ele esta dando um erro com o prepareStatmentet, mas eu sei que nao estou utilizando essa query que foi criada. m alguem poderia me dar uma luz?
#Código

package Classes;

import AcessosqlServer.AcessoSQL;
import java.sql.PreparedStatement;
import java.sql.ResultSet;


public class ProdutoControl {
    PreparedStatement pstm;
    ResultSet rs;
    
    String cadastro = "INSERT INTO Produto (nome_produto,descricao_produto,numero_produto,valor_total) "
            + "VALUES (?,?,?,?)";
            public void cadastrarCliente(ProdutoClass Produto){
            try{
            AcessoSQL sql = new AcessoSQL();
            pstm = sql.Conectar().prepareStatement(cadastro);     < erro aqui (
            pstm.setString(1, Produto.getNome());
            pstm.setString(2, Produto.getDescricao());
            pstm.setInt(3, Produto.getNumero());
            pstm.setInt(4, Produto.getValor());
            pstm.executeUpdate();
            }catch(Exception ex){
                ex.printStackTrace();
}

essa é a query que foi criada na classe de conexão com o banco:
#Código
 public ResultSet executar(String query){
        Statement st;
        ResultSet rs;
        try {
            st = this.conn.createStatement();
            rs = st.executeQuery(query);
            return rs;
        } catch ( SQLException e ) {
            e.printStackTrace();
        }
        return null;
    }
    
    public int Inserir(String query){
        Statement st;
        int result = -1;
        try {
            st = this.conn.createStatement();
            result = st.executeUpdate(query);
        } catch ( SQLException e ) {
            e.printStackTrace();
        }
        return result;
    }
}


 

Jothaz
   - 07 mai 2015

Post o erro.

E faça o um teste usando assim:

#Código

pstm = sql.Conectar().prepareStatement("INSERT INTO Produto (nome_produto,descricao_produto,numero_produto,valor_total) VALUES (?,?,?,?)");   

Lucas
   - 07 mai 2015

Fiz o teste, e ele diz que não consegue encontrar a variável sql, ( cannot find symbol, variable sql)
pstm = sql.Conectar().prepareStatement

eu não preciso abrir uma conexão passar o prepareStatement parar executar esse insert? e depois fechar a conexão?

eu criei aquelas duas query, segundo o tópico do nosso amigo, só não como utilizar,

#Código

package Classes;

import AcessosqlServer.AcessoSQL;
import java.sql.PreparedStatement;
import java.sql.ResultSet;


public class ProdutoControl {
    PreparedStatement pstm;
    ResultSet rs;
    
    
            public void cadastrarCliente(ProdutoClass Produto){
                pstm = sql.Conectar().prepareStatement("INSERT INTO Produto (nome_produto,descricao_produto,numero_produto,valor_total) VALUES (?,?,?,?)");
                try{
                pstm.setString(1, Produto.getNome());
                pstm.setString(2, Produto.getDescricao());
                pstm.setInt(3, Produto.getNumero());
                pstm.setInt(4, Produto.getValor());
                pstm.executeUpdate();
                }catch(Exception ex){
                    ex.printStackTrace();
                }
            }
}