No te funciona, pero... ¿Exactamente que te falla?
¿No encuentra el fichero de texto?
¿Lo encuentra pero no lo lee bien?
¿Lo lee bien pero falla al insertar los datos en la BBDD?
Aparentemente, el código parece estar bien, creo...
Lo único que me llama un poco la atención es que la primera lectura de línea se pierde.
Aquí lees la primera línea (marco en negrita):
FileReader file1 = new FileReader("src/personas.txt");
BufferedReader buffer1 = new BufferedReader(file1);
String line = buffer1.readLine();
Pero lo que se haya leído, se pierde sin haber trabajado con ella, porque luego el bucle while comienzas leyendo otra vez, así que el bucle empieza a trabajar con la segunda línea.
while((line = buffer1.readLine()) != null)
{
tokens = line.split(",");
ID = Integer.parseInt(tokens[0]);
NOMBRE = tokens[1];
APELLIDOS= tokens[2];
String insertString = "insert into clientes (ID, NOMBRE, APELLIDOS) values ('"+ID+"', '"+NOMBRE+"', '"+APELLIDOS+"'))";
stmt.executeUpdate(insertString);
}
Esto puedes evitarlo si en el bucle, haces la lectura de líneas justo al final.
En la condición del while simplemente comprueba si la línea es null. La lectura de nueva línea lo dejas para lo último, cuando ya se haya trabajado con la anterior línea leída
while(line != null)
{
tokens = line.split(",");
ID = Integer.parseInt(tokens[0]);
NOMBRE = tokens[1];
APELLIDOS= tokens[2];
String insertString = "insert into clientes (ID, NOMBRE, APELLIDOS) values ('"+ID+"', '"+NOMBRE+"', '"+APELLIDOS+"'))";
stmt.executeUpdate(insertString);
//Leemos siguiente línea
line = buffer1.readLine()
}