2008-11-27 66 views
2

我不知道用简单的Map<String,Object>执行普通记录是否够用。在java中实现活动记录的最佳方式是什么?

我想做类似于罗尔。当您自动向数据库中的表中添加字段时,您可以访问Dto中的字段。

我不想添加一个字段,然后必须将相同的字段添加到DTO声明。它不是干的。

回答

1

我想你在寻找一个非常轻量级的对象关系映射工具?

如果您想推出自己的产品,那么在developerWorks上有一个小例子this article

你可能想看看其他人,但Hibernate,JPA和JDO可能是最受欢迎的。 Prevayler类型系统可能是你正在寻找的。当然,这些可能都不是你想要的。你能更具体一点吗?

1

实现这取决于你想要什么。

Java是一种静态语言,因此您不能在RoR中使用ActiveRecord技巧,将动态方法添加到类中,除非您想自己操作字节代码。

这意味着你必须在java方法(getter/setter)和数据库表之间声明一个映射。

你可以做基于表的Java类的代码生成,也许这是你想要的?

1

如果DRY是您的重要关键字,那么您应该考虑从您的数据库模式生成源代码(反之亦然)。在ORM世界中,Hibernate带有出色的源代码生成工具。

既然你是不是在找一个ORM解决方案,我可以推荐我的数据库抽象工具jOOQ给您:http://jooq.sourceforge.net

它结合了从数据库模式生成的ActiveRecord状结构,以及一个查询,DSL以类型安全的方式实际执行您的查询。

相关问题