Bueno, realmente el uso que te propongo (String.matches) no lo considero avanzado, y como sí utilizaste patrones para el email (eso sí es más avanzado) , pues pensé en comentarlo. Pero bueno, para alguien que está aprendiendo sí es más claro como tu dices.
http://download.oracle.com/javase/1,...lang.String%29
Sobre lo otro, lo que te comenté es el patrón básico.
Con los datos que sacas/metes en la BBDD haces objetos tipo bean, que serían los DAO, con los mismos atributos que campos tienes en la BBDD, más o menos. Las consultas las pones en un objeto DTO, por ejemplo todas las relacionadas con User. Cuando haces una consulta, pasas los resultados a su DAO o lista de DAOs.
Es lo que tendrás que usar con frameworks de persistencia como Hibernate, Ibatis/MyIbatis...
Yo tenía un link en algún sitio a un tutorial que no estaba mal, pero ahora no lo encuentro. De todas formas en el foro, podrás ver muchos ejemplos de gente que pregunta.