bisognerebbe capire i settaggi di mysql dentro phpmyadmin, ma credo che tu abbia lasciato il default.
Domanda (forse stupida a prima vista), tu dici che l'insert lo fa, ma che lo vedi solo dopo il riavvio.
Sicuro che l'INSERT è fatto quando tu credi di averlo fatto?
Un test interessante sarebbe:
1. svuota DB
2. inserisci dato e fermati (dovresti eseguire in debug in modo da bloccare l'operazione
3. con un altro strumento (non il tuo programma java quindi) fare la stessa SELECT che fai da java direttamente sul db (potresti usare squirrel ad esempio )
4. proseguire con la select dal tuo programma.
Se il dato è inserito, dovresti vederlo da entrambi (non hai motivo per non vederlo).
Se il dato è inserito e lo vedi da squirrel e non dal tuo programma, hai problemi con le sessioni
Se il dato non lo vedi da entrambe le parti, termina l'INSERT con un commit (forza la persistenza).
Sono solo ipotesi che si fanno non sapendo come apri la connessione al db, come inserisci e come fai la select (senza conoscere il codice insomma)