La forma de almacenamiento en la base de datos depende de cada una. No puedo ayudarte con mysql en particular, porque no la he manejado.
En cuestión de Java, dependerá de cómo hayas guardado los datos, o sea, del tipo de la columna. En particular, lo que mejor te podría venir para guardar y recuperar imágenes sería como tipo BLOB (Binary Large OBjects) o quizás como LONGVARBINARY. Puedes recuperar los datos desde un ResultSet, con los métodos getBlob() y getBinaryString().
Para comparar dos imágenes, pues sólo se me ocurre pixel a pixel, por componentes de color.
Espero que te sirva.
Un saludo.
Silverfox