Java MySQL preparado Estado de cuenta por lotes

Estoy tratando de usar el lote de declaraciones preparadas pero tengo un problema.

El siguiente código no me da errores, pero solo inserta en la tabla la última clave del mapa y no sé por qué.

Seguramente será un error muy estúpido, pero esta es la primera vez que uso el método addBatch ().

        Class.forName("com.mysql.jdbc.Driver");
        this.connect = DriverManager.getConnection("jdbc:mysql://localhost/" + this.database + "?user=" + this.user + "&password=" + this.password);
        String s;
        for (String key : this.map.keySet())
        {
            s = ("insert into " + this.database + ".user (nickname) values (?)");
            this.preparedStatement = this.connect.prepareStatement(s);
            this.preparedStatement.setString(1, key);
            this.preparedStatement.addBatch();
        }

        this.preparedStatement.executeBatch();

¡Gracias por adelantado!

Respuestas a la pregunta(2)

Su respuesta a la pregunta