如何正确持久Java Bean?

时间:2017-03-17 23:41:23

标签: java design-patterns model persistence javabeans

TL; DR:将持久化方法放在Java Bean的类声明上是错误的还是只是"丑陋"?另外,如果它既不是,我可以将它与MVC一起使用吗?

当我第一次进入Java时,我了解到我的数据库表可以用Java表示为" Beans":一个将表的每列(或字段)作为成员的类。 /> 我还了解到,为了持久化bean并将数据库中的行读入所述bean,你应该使用一个名为" DAO"的东西:一个使用数据库的行来制作Beans的类,并使用Beans在数据库上创建/更新行。

到目前为止,非常好。

自从我学习Java以来​​已经快3到4年了:我在大学读课并参加VB.NET课程(是的,所有事情的VB,我知道),我的老师开始讲授持久性和类似的东西那。我希望她能像Java Bean和DAO那样操作它们。

嗯,她确实创建了类似Java Beans的东西,但是她没有创建DAO,而是在Bean本身上编写了持久性方法。然后我想:

  

这实际上很有意义:如果你从数据库中读取   在对象上,您实际上可以将数据读入对象   并返回booleanint状态以查看您的操作   只是努力工作!

     

赞:Person p = new Person().get("James Cameron");
  甚至:Person p = new Person(); p.get("James Cameron");

所以我开始在我的Java程序中使用这个模式。我觉得我的代码更有意义,更干净,也更快一点。

但今天令我感到困扰的是:我在编码的所有内容上使用了DAO模式近3年,我总觉得它有点不对劲。我的意思是,即使EJB使用DAO,EJB也是由Java制造商制作的,因此这应该是执行Bean持久性的正确方法 - 或者至少是推荐的方式。但与此同时,它感到笨拙,缓慢,而且说实话,实施起来非常烦人。

所以我的问题是:我可以将持久性方法放在Java Bean中,或者说这是完全错误的吗?如果做得好,程序员会怎么想呢?我也很想知道将它用于MVC中的模型是否可以接受,因为我无法找到关于它的单一内容 - 并且不知道从哪里开始。

0 个答案:

没有答案