2010-04-28 20 views
22

¿Cuál de las siguientes bases de datos es mejor para una gran aplicación de escritorio: Firebird, JavaDB, hsqldb? Necesito rendimiento, fácil de usar y licencia totalmente gratuita.¿Cuál es la mejor base de datos para usar en una aplicación de escritorio Java?

+1

Esta pregunta también tiene algunas buenas discusiones: http://stackoverflow.com/questions/41233/java-and-sqlite –

+0

¿Qué desea almacenar en la base de datos? ¿Objetos? XML? tipos primitivos? – Catchwa

+1

+1 para BalusC, debes aceptar la respuesta que desees para las preguntas que hagas, de lo contrario la gente no querrá responderte más. – dimo414

Respuesta

34

Si usted está buscando una base de datos integrable, mi recomendación sería H2 (siglas de Hypersonic 2, (re) escrito por el autor de HSQLDB). Vea el detailed comparison of features y el performances.

Usar una base de datos 100% Java permitiría ejecutarlo en el mismo proceso y facilitar las cosas mucho más.

+0

H2 parece muy bueno. – BalusC

+4

@BalusC He dejado caer hsqldb y javadb a favor del H2, me encanta. Y su [modo de compatibilidad] (http://www.h2database.com/html/features.html#compatibility) (puede "comportarse", digamos, Oracle, DB2, etc.) es maravilloso para probar. –

+0

Oye, eso es bueno. Debo admitir que no sabía que significa Hypersonic 2. Ese será un nuevo juguete para jugar tarde o temprano :) – BalusC

1

Depende de los requisitos y la cantidad de datos. Mi última elección fue MySQL y era muy cómodo (aplicación columpio)

6

Déjeme recomiendo el Postgres (http://www.postgresql.org/ ), que es uno de los mejores de dominio público DB que conozco.

Tuve una experiencia con este DB en mi proyecto anterior, en el cual teníamos ~ 20 tablas en el esquema, la tabla más grande tenía ~ 100,000 filas, y la cantidad total de datos no era tan grande.

Este proyecto se está ejecutando en producción durante más de 2 años, y no hubo ningún problema especial con él.

Shay

+5

Si está enviando una aplicación de escritorio, es probable que no sea necesario que los usuarios instalen una aplicación de base de datos por separado, por lo tanto, el OP ha sugerido JavaDB y hsqldb, ambos pueden integrarse en aplicaciones Java. Aunque no estoy seguro de cómo encaja Firebird en eso. Por supuesto, esto no es de ninguna manera una incursión en Postgres, que en mi opinión es la elección obvia siempre que se requiera una base de datos: escritorio o servidor. – Geoff

3

Creo que estarás mejor con una base de datos incrustada para esto. HSQLDB o H2 funcionaría, al igual que SQLite. SQLite es bastante popular fuera del mundo Java (es utilizado por el proyecto Mozilla, por ejemplo). No estoy familiarizado con JavaDB, por lo que no puedo hablar de sus capacidades.

SQLite es conocido por ser bastante rápido.

0

Me gustaría un DBMS que es no específico de Java. Es posible que desee compartir sus datos con una aplicación C++ o .NET algún día. Si no necesita ser cliente/servidor, considere SQLite o H2. Si lo hace, entonces considere Postgres. Todos estos tienen controladores ODBC y/o controladores para lenguajes específicos distintos de Java.

3

Firebird es muy buena base de datos especialmente para aplicaciones de escritorio

No es buen conductor de Java.

+2

Especialmente para 'grandes aplicaciones de escritorio'. Firebird escala a cientos de gigabytes y más. –

3

Mi recomendación es H2. Recientemente migré un archivo db (del servidor MS SQL) que incluye 2 tablas más grandes con más de 2 millones de filas cada una. Primero probé Derby y tuve problemas (no solo de rendimiento), luego cambié a H2 y migré todo con éxito.

Cuestiones relacionadas