Error in database insertion using JDBC

0

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();
    }
}
    
asked by anonymous 14.11.2018 / 22:28

0 answers