Erro inserção com preparedstatement java

Olá estou estudando PreparedStatement porém venho enfrentando um erro que não consigo resolver , estou usando um exemplo que peguei da internet .

 public static void InserirCategoria() {

        DaoBase.conectar();
        try {

            String sql = "insert into CATEGORIA (IDCATEGORIA,NOME)values"
                    + ("?,?");
            PreparedStatement stm = DaoBase.dbConnection.prepareStatement(sql);
            stm.setInt(1, 20);
            stm.setString(2, "Bebidas");
            stm.executeQuery();
            stm.close();
        } catch (SQLException ex) {
            ex.printStackTrace();
            System.out.println("Erro " + ex.getMessage());
        }

    }

}

Porem ele me retorna o seguinte erro

Erro O número de valores atribuídos não é igual ao número de colunas especificadas ou implícitas.
pelo que eu entendi ele diz que eu estou colocando valores a mais no insert porém eu só tenho essas duas colunas IDCATEGORIA e NOME . estou usando JAVADB.

o values está no lugar errado. deixe sua string desta forma.

Insert into “nametabela” ( col1, col2, col3 ) values ( ?, ?, ? );

O values está bem, os parêntesis é que estão mal[quote=“Danielfsantos56, post:1, topic:326868”]

 + ("?,?");

[/quote]
Dever ser:

     + "(?,?)";