J'ai un seul utilisateur Java) dans lequel j'aimerais stocker des données dans une base de données légère telle que Derby ou Sqlite. J'aimerais utiliser une couche d'abstraction de données dans mon programme. Hibernate apparaît exiger beaucoup de configuration et est excessif pour ce dont j'ai besoin. Quelles sont les alternatives légères à Hibernate?
Hibernate nécessite une configuration proche de zéro si vous utilisez des annotations. Il peut même détecter automatiquement les beans mappés dans le classpath! Je ne vois aucune alternative à cela à la fois de simplicité et point de vue de la puissance.
Il peut également s'exposer sous le nom de JPA, qui est encore plus simple (à mon humble avis).
Ma bibliothèque ORMLite est l'une de ces alternatives. Il supporte MySQL, Postgres, Microsoft SQL Server, H2, Derby, HSQLDB et Sqlite, et peut facilement être étendu à d’autres. Il utilise des annotations pour configurer les classes, une bonne prise en charge de Spring, un générateur de requêtes flexible, etc.
Il nécessite toujours une configuration XML, mais jetez un oeil à MyBatis (anciennement iBatis) .
jOOQ est livré avec un DSL fluide simulant SQL directement dans Java comme effet secondaire pour ses objectifs principaux qui sont:
Lisez à propos de jOOQ dans cet article: http://Java.dzone.com/announcements/simple-and-intuitive-approach , ou visitez le site Web directement: http: // www. jooq.org
(Avertissement, je travaille pour la société derrière jOOQ)
Apache Commons DBUtils élimine une grande partie du travail répétitif de la programmation JDBC. Il nécessite peu de configuration et est facile à apprendre. Ce n'est pas un framework ORM (comme Hibernate et les autres frameworks mentionnés ici), mais il automatise le mappage des colonnes SELECT sur des champs membres Java), ainsi que sur d'autres tâches de programmation JDBC répétitives. certainement léger.
Vous pouvez jeter un oeil à Ebean ORM . - Aucune session - le chargement paresseux ne fonctionne que - Une API plus simple à utiliser et à apprendre.
Cayenne m'a bien servi. Relativement facile à comprendre et à faire fonctionner. Je trouve la partie ingénierie inverse particulièrement charmante. La configuration peut être faite avec une interface graphique.
Je peux proposer Apache empire-db. http://incubator.Apache.org/empire-db/
Apache Empire-db est un composant de persistance de données relationnelle Open Source qui permet la définition de requêtes dynamiques indépendante du fournisseur de bases de données, ainsi que la récupération et la mise à jour de données simples et sûres. Comparé à la plupart des autres solutions comme par exemple Implémentations Hibernate, TopLink, iBATIS ou JPA, Empire-db adopte une approche considérablement différente, avec un accent particulier sur la sécurité au moment de la compilation, redondances réduites et productivité accrue des développeurs.
Un exemple:
// Define the query
DBCommand cmd = db.createCommand();
DBColumnExpr EMPLOYEE_FULLNAME= db.EMPLOYEES.LASTNAME.append(", ")
.append(db.EMPLOYEES.FIRSTNAME).as("FULL_NAME");
// Select required columns
cmd.select(db.EMPLOYEES.EMPLOYEE_ID, EMPLOYEE_FULLNAME);
cmd.select(db.EMPLOYEES.GENDER, db.EMPLOYEES.PHONE_NUMBER);
cmd.select(db.DEPARTMENTS.NAME.as("DEPARTMENT"));
cmd.select(db.DEPARTMENTS.BUSINESS_UNIT);
// Set Joins
cmd.join(db.EMPLOYEES.DEPARTMENT_ID, db.DEPARTMENTS.DEPARTMENT_ID);
// Set contraints and order
cmd.where(EMP.LASTNAME.length().isGreaterThan(0));
cmd.orderBy(EMP.LASTNAME);;
Le framework ORMAN est également bon. https://github.com/ahmetalpbalkan/orman
Documentation: https://github.com/ahmetalpbalkan/orman/wiki
Comparaison: https://github.com/ahmetalpbalkan/orman/wiki/Why-orman-is-better-than-other-orms-for-you%3F
Je suis peut-être un peu en retard à la soirée, mais j’ai publié ActiveJDBC en 2010, qui est une implémentation ORM du modèle ActiveRecord, est plus de 10 fois plus léger que Hibernate dans les dépendances, au moins deux fois plus vite à exécution, et ne nécessite aucune configuration ou annotations.
Vous voudrez peut-être jeter un œil à prevayler (sur sourceforge). Une approche un peu plus légère de la persistance. Ou pensiez-vous faire des reportages contre la DB?
Si l'utilisation d'une base de données relationnelle n'est pas obligatoire, essayez db4o.
J'ai créé sormula comme alternative aux ORM pour poids lourds. Il est prêt pour CRUD, compatible POJO, simple à utiliser, à configurer et à comprendre. L'utilisation de zéro configuration est possible. www.sormula.org