[Resolvido]Incompatible types String[] cannot be converted to Array

Estou querendo salvar um Array de String no meu banco de dados mas apresenta o seguinte erro Incompatible types String[] cannot be converted to Array

Classe Produtos.

 private int codigo;
private String[] nome;
private String descricao;
private double valor;
private String marca;
private String tamanho;

private String tecido;


Produtos(){

}

public Produtos(int id, String[] nome, String descricao, double valor, String marca, String tamanho, String tecido) {
this.codigo = codigo;
 this.nome = nome;
 this.descricao = descricao;
 this.valor = valor;
  this.marca = marca;
  this.tamanho = tamanho;
  
   this.tecido = tecido;

}



public int getCodigo() {
    return codigo;
}

public void setCodigo(int codigo) {
    this.codigo = codigo;
}

public String[] getNome() {
    return nome;
}

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

public String getDescricao() {
    return descricao;
}

public void setDescricao(String descricao) {
    this.descricao = descricao;
}

public double getValor() {
    return valor;
}

public void setValor(double valor) {
    this.valor = valor;
}

public String getMarca() {
    return marca;
}

public void setMarca(String marca) {
    this.marca = marca;
}

public String getTamanho() {
    return tamanho;
}

public void setTamanho(String tamanho) {
    this.tamanho = tamanho;
}



public String getTecido() {
    return tecido;
}

public void setTecido(String tecido) {
    this.tecido = tecido;
}

Classe DAO que apresenta o erro

   public void salvar(Produtos pro, ImagemProdutos im) {
    try (
        Connection con = Conecta.conexao();
        PreparedStatement ps = con.prepareStatement(INSERT_SQL);
    ) {
        
        
        ps.setString(1, pro.getDescricao());
        ps.setDouble(2, pro.getValor());
        ps.setString(3, pro.getMarca());
        ps.setString(4, pro.getTamanho());
        ps.setString(5, pro.getTecido());
        ps.setBytes(6, im.getConteudo());
        ps.setString(7, im.getFormato());
    ps.setArray(8, pro.getNome());//Incompatible types String[] cannot be converted to Array
  
        ps.execute();
    } catch (SQLException e) {
       throw new RuntimeException(e);
    } catch (ClassNotFoundException ex) {
         Logger.getLogger(ProdutosDAO.class.getName()).log(Level.SEVERE, null, ex);
     }
}
ps.setString(8, pro.getNome()); //funciona??

ele da o erro de Incompatible types String[] cannot be converted to String

Mais qual a intenção de um vetor? varios valores para uma mesma coluna?

quero que quando cadastrar o nome dos produtos no banco de dados eu jogar os nomes em uma estrutura de repetição for em que vai inserir o codigo do produto, codigo++ no banco de dados.
Ou seja de acordo com que vou adicionando o nome do produto ele adiciona o código no banco de dados

ao meu ver essa sua classe esta mal estruturada, penso que não tenha sentido você cadastrar um produto com varios nomes,

private int codigo;
private String[] nome; ->> aqui um array de nome
private String descricao;
private double valor;
private String marca;
private String tamanho;
private String tecido;

em relação ao erro  `Incompatible types String[] cannot be converted to Array`

é porque esta tentando colocar uma String em um Array de String, contudo pode fazer
desta forma para inserir no banco, mas acho estranho porque ai juntar tudo em uma coluna só ao
inserir, sei lá, no metodo salvar poderia tentar algo assim

   String[] nome =  { "a", " b", "c" };
   for(int i = 0; i < nome.length; i++)
        ps.setString(i, nome[i]);

só complementando, quando você cria uma instançia da classe Produtos, ela representa um único objeto, mesmo que tenha varios nomes , o nome vai ser inserido em uma única coluna do banco representando “um uníco objeto”. verifica melhor essa classe , acho que vai ter que refatorar ai
alguma coisa.

2 curtidas