Leandro,
com relação ao seu comentário:
Isso é verdade, funciona sim muito bem, tanto que grandes aplicações como o jboss faz uso desse tipo de banco (o jboss usa o hsqldb).
Existe um problema nesta afirmação, a sua aplicação precisa ter acesso ao disco (onde ficará o banco de dados propriamente dito). Normalmente, mesmo sendo um banco de dados puro java, acaba-se por instalá-lo no servidor e executá-lo como servidor…
Existe outro fato importante, no modo enbarcado (embedded), normalmente o banco irá permitir apenas uma conexão com o banco de dados, e em aplicações para web, normalmente se usa uma conexão para cada thread (para cada requisição).
Vantagens para os DB puro java em aplicações java são enormes, entre elas, pode-se eliminar toda a camada SQL entre outras…
Se quiser mais informações, dê uma olhada nos bancos:
derby ou javadb http://db.apache.org/derby/ ou
Using Java DB in Desktop Applications - http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javadb/
Getting Started - http://java.sun.com/docs/books/tutorial/jdbc/basics/gettingstarted.html
hsqldb - http://www.hsqldb.org/
h2 - http://www.h2database.com/html/main.html
Sleepycat - http://www.oracle.com/corporate/press/2006_feb/sleepycat.html
Com relação ao comentário do leo_mf:
Depende muito do sistema que vc esta desenvolvendo. Eu recomendo usar o mysql. Os bancos java BD são incompletos mas são bem rápidos.
Muitas funções q tem em um mysql ou postgresql não tem em banco java BD.
Eu discordo com relação a completude dos bancos puro java, a questão de completude de um banco ou de outro, acredito que só podem ser mensurados com relação a aderência dos mesmos as especificações do padrão ANSI SQL, neste aspecto, os bancos de dados puro java são muito bons. Superam inclusive o MySQL.
O JavaDB que é na realidade o Apache Derby, teve sua origem no SGBD Cloudscape da IBM e é 100% aderente ao padrão ANSI 99, não sendo ainda compátivel com o SQL 2003. Mas mesmo o Oracle não implementa o padrão ANSI SQL 2003 de forma completa.
Agora, para aplicações em produção, normalmente devemos lembrar que os banco podem ou serão acessados por outros sistemas… tanto que o H2, por exemplo, permite a conexão de aplicações Win32 utilizando o ODBC do postgresql.
No caso do Derby, os drivers do IBM DB2 servem também para acessá-lo.