43 votes

Embedded java bases de données

J'aimerais avoir des avis ou des suggestions concernant des bases de données en Java. En particulier, je regardais H2, HSQLDB et Derby. Avez-vous les utiliser dans un projet de production? Avez-vous des commentaires ou des recommandations pour sélectionner l'un sur les autres?

Merci

Edit: je suis actuellement en train d'évaluer ces options à utiliser dans notre évolution interne, donc je n'ai pas de cas d'utilisation spécifiques à l'esprit. L'une des utilisations possibles, je suis à leur évaluation est une application de bureau qui utilise la base de données comme un référentiel local. À un certain point, il se synchronise avec un référentiel central (dans ce cas, DB2). C'est dans un magasin et de l'architecture. De toute façon, c'est juste une possibilité pour guider vos réponses, en fait je suis à la recherche de vos expériences d'utilisation de ces outils.

35voto

Chris Dail Points 11406

J'utilise Apache Derby pour à peu près tous mes base de données intégrée besoins. Vous pouvez également utiliser Java de Sun DB qui est basé sur le Derby, mais la dernière version de Derby est beaucoup plus récente. Il prend en charge un grand nombre d'options que commercial, natif de bases de données à l'appui, mais est beaucoup plus petite et plus facile à intégrer. J'ai eu quelques tables de base de données avec plus d'un million de disques sans problèmes.

J'ai l'habitude d'utiliser HSQLDB et Hypersonique environ 3 ans. Il a quelques problèmes de performances majeurs à l'époque et je le changer pour le Derby du fait de ces questions. Derby a été solide, même quand il était dans la incubateur de Apache.

28voto

Rohan Karwa Points 91

J'avais besoin d'utiliser Java de base de données intégré dans un de mes projets et j'ai fait beaucoup de recherches, de comprendre les avantages et les inconvénients de chaque base de données. J'ai écrit un blog liste des avantages et des inconvénients de populaire embedded java bases de données (H2, HSQLDB, Derby, ObjectDB, Neo4j, OrientDB), vous pouvez avoir un coup d'oeil. J'ai choisi H2 comme je l'ai pensé qu'il valait mieux adapté à mes exigences. Lien pour le blog: http://sayrohan.blogspot.in/2012/12/choosing-light-weight-java-database.html Espérons que cela aide!

21voto

K2J Points 507

J'irais avec H2, la performance est censé beaucoup mieux que de Derby. Lire http://www.h2database.com/html/performance.html pour plus d'info.

12voto

Stu Thompson Points 16599

Java DB (Soleil de distribution d'Apache Derby) est maintenant livré dans JDK 6!

J'ai voulu faire quelque chose comme Jason Cohen et ont été de penser que cela ressemble à la façon la plus simple d'être dans le JDK distribution (de la semaine dernière est maintenant une exigence pour mon application). Ou peut-être que je suis paresseux de cette façon.

7voto

Jason Cohen Points 36475

Nous utilisons HSQLDB dans la production comme une "configuration" pour notre application. Il permet à des personnes à un procès sans les tracas de la mise en place d'une vraie base de données.

Nous ne sommes cependant pas en charge pour une utilisation normale. Les raisons sont multiples:

  1. Ralentit proportionnellement à la taille des données.
  2. Difficile d'accès en dehors de notre application (par exemple, pour les rapports personnalisés).
  3. Transactions / disque-sync est difficile d'obtenir le droit, de sorte qu'il est facile de perdre des données.

Pour au moins (2) et (3), il existe des moyens de contourner cela, mais c'est difficile; il est beaucoup plus facile pour par exemple installer MySQL.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X