Inserção no banco de dados - Java

Eai pessoal!

Criei um projeto de relação do back utilizando Java, com o banco de dados(mysql).

Já criei a classe Factory e a mesma está funcionando. Minha dúvida é em relação a inserção dos dados. Na classe DAO, criei os métodos de save, list, update e delete. Não estou conseguindo inserir os dados com o método save.

package dao;


import factory.ConnectionFactory;
import model.Receita;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class ReceitaDAO {

  public boolean save(Receita receita){

      String sql = "INSERT INTO 'receita_cadastro'.'lista_receitas' (nome, tipoReceita, ingredientes, modoDePreparo) VALUES(?,?,?,?)";
      Connection connection = new ConnectionFactory().getConnection();

      try{
          PreparedStatement preparedStatement = connection.prepareStatement(sql);
          preparedStatement.setString(1, receita.getNome());
          preparedStatement.setString(2, receita.getTipoReceita());
          preparedStatement.setString(3, receita.getIngredientes());
          preparedStatement.setString(4, receita.getModoDePreparo());

          return true;

      } catch (SQLException e) {
          e.printStackTrace();
      }
      return false;
  }

Na classe de teste - main, quando chamo o método save da classe DAO, não tenho erros, o terminal me passa uma espécie de ID de conexão, mas não tenho os dados que criei na classe main inseridos no banco.

Como minha classe factory está funcionando normalmente, creio que o problema está na classe DAO ou no banco, mas vou colocar aqui a classe model e a factory também.

Classe ConnectionFactory

package factory;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectionFactory {

    private String url = "jdbc:mysql://localhost:3306/receita_cadastro";
    private String username = "root";
    private String password = "root";


    public Connection getConnection(){

        Connection connection = null;

        try {
           connection = DriverManager.getConnection(url, username, password);
            System.out.println(connection);
        } catch (SQLException e){
            e.printStackTrace();
        }
        
        return connection;
    }



}

Classe Receita (model)

package model;

public class Receita {

    private String nome;
    private String tipoReceita;
    private String ingredientes;
    private String modoDePreparo;


    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getTipoReceita() {
        return tipoReceita;
    }

    public void setTipoReceita(String tipoReceita) {
        this.tipoReceita = tipoReceita;
    }

    public String getIngredientes() {
        return ingredientes;
    }

    public void setIngredientes(String ingredientes) {
        this.ingredientes = ingredientes;
    }

    public String getModoDePreparo() {
        return modoDePreparo;
    }

    public void setModoDePreparo(String modoDePreparo) {
        this.modoDePreparo = modoDePreparo;
    }

}

Você esqueceu de chamar o preparedStatement.executeUpdate() após setar os parâmetros.

Acredito que falta executar o comando de inserção depois de ter estruturado ele com os parâmetros!

preparedStatement.setString(4, receita.getModoDePreparo());
preparedStatement.executeUpdate();
return true;

Era isso mesmo. Muito obrigado pela ajuda!!!

Após essa alteração consegui realizar a inserção, mas não consigo deletar, e já corrigi os outros métodos. Agora o erro é em relação ao caminho na string sql que eu passo no método, ele diz que o nome da tabela não existe, mas passei o caminho correto. Não consigo enviar os prints, mas to enviando o erro que está ocorrendo por txt:

java.sql.SQLSyntaxErrorException: Table ‘receita_cadastro.lista_receita’ doesn’t exist
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
atcom.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
atcom.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)
at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)
at dao.ReceitaDAO.deleteReceita(ReceitaDAO.java:98)
at teste.ConnectionFactoryTeste.main(ConnectionFactoryTeste.java:24)

Mas o caminho que estou passando no método ‘deleteReceita’ está correto (assim eu acho):

public boolean deleteReceita(Receita receita){

      Connection connection = new ConnectionFactory().getConnection();
      String sql = "DELETE FROM lista_receita WHERE nome_receita = ?";

      try{
          PreparedStatement preparedStatement = connection.prepareStatement(sql);
          preparedStatement.setString(1, receita.getNome());
          preparedStatement.executeUpdate();
          return true;

      } catch (SQLException e) {
          e.printStackTrace();
      }
      return  false;

  }

Nome do banco: receita_cadastro
Nome da tabela: lista_receitas
Nome das colunas: id, nome_receita, tipo_receita, ingredientes, modo_preparo

OBS.: Como nesse caso, eu criei este tópico como ‘Inserção’, e minha dúvida agora é no método ‘delete’, seria melhor eu abrir outro tópico, para ficar separado?

No insert e no delete estás a usar nomes diferentes. Inseres em lista_receitas e apagas de lista_receita (falta o s)