轻量级的替代hibernate?
我有一个用户java程序,我想有一个轻量级的数据库,如德比或Sqlite存储数据。 我想在我的程序中使用数据抽象层。 Hibernate似乎需要大量的configuration,并为我所需要的矫枉过正。 什么是Hibernate的轻量级替代品?
如果使用注释,Hibernate需要接近零configuration。 它甚至可以在类path中自动发现映射的bean! 我从简单和权力的angular度都看不到任何其他的select。
它也可以将自己暴露为JPA,这是(恕我直言)更简单。
我的ORMLite库是一个这样的select。 它支持MySQL,Postgres,Microsoft SQL Server,H2,Derby,HSQLDB和Sqlite,并且可以很容易地扩展到其他。 它使用注释来configuration类,良好的Spring支持,灵活的查询生成器等。
它仍然需要XMLconfiguration,但看看MyBatis(以前的iBatis) 。
jOOQ直接在Java中运行一个stream畅的DSL模拟SQL,作为其主要目标的副作用:
- 源代码生成
- 完全支持标准SQL,包括SQL语言function,如UNION,嵌套SELECT,所有types的JOIN,别名(例如用于自连接)等
- 对包括UDT,存储过程,供应商特定function等非标准SQL的广泛支持
在这篇文章中阅读jOOQ: http ://java.dzone.com/announcements/simple-and-intuitive-approach,或直接访问网站: http : //www.jooq.org
(免责声明,我为jOOQ背后的公司工作)
你可以看看Ebean ORM 。 – 没有会议 – 懒加载只是起作用 – 更简单的API来使用和学习。
Apache Commons DBUtils从JDBC编程中吸取了大量的重复劳动 。 它需要很less的configuration,很容易学习。 它不是一个ORM框架(就像这里提到的Hibernate和其他框架一样),但它自动将SELECT列映射到Java成员字段以及其他重复的JDBC编程任务。 这当然是轻量级的。
卡宴给了我很好的服务。 比较容易理解,并能够正常运行。 我发现逆向工程部分特别迷人。 可以使用GUI完成configuration。
我可以build议Apache的帝国-DB。 http://incubator.apache.org/empire-db/
Apache Empire-db是一个开源的关系数据持久性组件,它允许数据库厂商独立的dynamic查询定义以及安全和简单的数据检索和更新。 与大多数其他解决scheme(如Hibernate,TopLink,iBATIS或JPA实现)相比,Empire-db采用了非常不同的方法,特别关注编译时安全性 ,减less冗余并提高开发人员的生产力。
一个例子:
// 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);;
ORMAN框架也不错。 https://github.com/ahmetalpbalkan/orman
文档: https : //github.com/ahmetalpbalkan/orman/wiki
比较: https : //github.com/ahmetalpbalkan/orman/wiki/Why-orman-is-better-than-other-orms-for-you%3F
我可能晚了一点,但是我在2010年发布了ActiveJDBC ,这是一个ORAC实施的ActiveRecord模式,在依赖性方面比Hibernate轻10倍以上,运行时速度至less快两倍,并且需要零configuration或注释。
你可能想看看prevayler(在sourceforge上)。 一个更轻量级的持久性方法。 或者你是否想要对数据库进行报告?
如果使用关系数据库不是强制性的,请尝试db4o。
我创build了sormula作为重量级ORM的替代品。 它是CRUD-ready,POJO-friendly,使用简单,configuration和理解。 零configuration使用是可能的。 http://www.sormula.org
风筝框架也是非常轻的orm框架。 它以最less的configuration提供几乎所有的数据库操作。
http://deipakgarg.github.com/Kite-ORM/
披露:我是这个项目的作者