ciao!

ho specificato il linguaggio, anche se il problema non penso sia quello.

in sostanza devo scorrere una cartella, e per ogni file trovato devo inserire un record nel db.
in totale sono 1938 files al momento.

dopo ogni inserimento chiudo la connessione, però ottengo questo errore:
codice:
fun main(args: Array<String>) {
    getMusica()
}

fun getMusica() {
    truncateTable("canzoni")
    println("==========")
    println("Inizio importazione Musica")

    val folder = "/run/media/fermat/DATI/Personal/Musica/"
    var cntTot = 0

    val cmd = "INSERT INTO canzoni VALUES(?, ?, ?, NOW(), NOW())"

    File(folder)
        .walk()
        .sortedBy { it.name }
        .forEach {
            cntTot++

            // ALTRO

            val preparedStmt: PreparedStatement = getClient().prepareStatement(cmd)
            preparedStmt.setString(1, it.name)
            preparedStmt.setString(2, autore)
            preparedStmt.setString(3, genere)
            preparedStmt.execute()
            getClient().close()

            Thread.sleep(1000)
            println(it.name)
        }

    println("==========")
    println("Totale canzoni: $cntTot")
}

fun truncateTable(table: String) {
    val statement: Statement = getClient().createStatement()
    statement.executeUpdate("TRUNCATE $table")
    getClient().commit()
    getClient().close()
}

fun getClient(): Connection {
    return DriverManager.getConnection(
        "........."
    )
}
che strategia posso adottare per evitare questo problema?
considerando che non posso modificare quel parametro purtroppo.