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ódigopackage 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();
}
}
}