2008-11-27 65 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以類型安全的方式實際執行您的查詢。

相關問題