So guys, I'm trying to insert into a table (My database is using 3 tables), and for some reason in the stores_products table the insert is not performed. Here is the error:
t com.mysql.cj.jdbc.exceptions.SQLError.createSQLException (SQLError.java:117) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException (SQLError.java:97) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException (SQLExceptionsMapping.java:122) at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal (ClientPreparedStatement.java:974) at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal (ClientPreparedStatement.java:1113) at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal (ClientPreparedStatement.java:1061) at com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate (ClientPreparedStatement.java:1381) at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate (ClientPreparedStatement.java:1046) at connection.Count.sourceProduct (Register.java:106) at view.Test.interfaceCadastroProduct (Test.java:115) at view.Test.interfaceStore (Test.java:132) at view.Test.main (Test.java:186)
The table structure that is causing errors is:
create table lojas_produtos (
id_loja int NOT NULL,
id_produto int NOT NULL,
qtde int,
preco double,
PRIMARY KEY(id_loja)
)default charset=utf8;
The insertion code in the tables is this:
public void cadastrarProduto(Loja loja, Produto produto){
Connection con = ConnectionDB.getConnection();
PreparedStatement stmt = null;
ResultSet rs = null;
try {
//inserindo na tabela produtos
stmt = con.prepareStatement("insert into produtos (nome_produto) values (?)");
stmt.setString(1, produto.getNome());
stmt.executeUpdate();
stmt = null;
//recuperando o id
stmt = con.prepareStatement("select id from produtos where nome_produto = ?");
stmt.setString(1, produto.getNome());
rs = stmt.executeQuery();
rs.next();
produto.setCodigo(rs.getInt("id")); //set codigo produto
stmt = null;
/*O ERRO É BEM AQUI*/
//inserindo na tabela relacional loja-produto
stmt = con.prepareStatement("insert into lojas_produtos (id_loja, id_produto, qtde) values (?, ?, ?)");
stmt.setInt(1, loja.getId());
stmt.setInt(2, produto.getCodigo());
stmt.setInt(3, produto.getQuantidade());
//stmt.setDouble(4, produto.getPreco());
stmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}