Java新手 – 什么是JPA和DAO?

前端之家收集整理的这篇文章主要介绍了Java新手 – 什么是JPA和DAO?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是 Java的新手,我正在尝试使用servlet创建一个Web项目.
我想查询我的数据库,但我想我不了解JPA和DAO的一切.

我被教导过这样做:

>创建类com.package.entity.User(从我的数据库生成)
>创建接口com.package.dao.UserDao
>创建实现UserDao的类com.package.dao.jpa.JpaUserDao
>使用public List< User>等方法创建EJB com.package.service.UserService.找到所有()

我听说没有必要用JPA创建一个DAO接口,但我完全迷失了,我根本不了解我应该做什么或者EJB是什么.我只是想找到我的数据库中的所有用户,并按照Java的良好实践显示他们的名字.

对于我的servlet和JSP来说已经足够了.

你会推荐什么 ?

解决方法

DAO代表“数据访问对象”.它抽象了“从数据存储中获取内容”的概念.您可以使用JDBC调用,JPA调用或其他任何方式实现DAO对象.也许它会调用一些远程Web服务.在JPA上使用DAO似乎是多余的,它确实添加了一个层,但我认为这是值得的.

例如,您可能有一个“显示绿眼睛用户”的用例.

直接JPA:

List<User> users = entityManager.createQuery("select u  from User u where u.EyeColor = 'green'"");

有DAO你有:

List<User> users = dao.UsersWithEyeColor("green");

DAO在这里有几个优点:

>它更容易阅读.
>它不会将您的数据库结构暴露给应用程序的其余部分
>单元测试会更容易.获得绿眼睛用户的课程只需要创建一个“Mock”dao.这比嘲笑JPA更容易.

这些只是使用DAO的一些参数.对于一个非常简单的小应用程序,它可能是太多的开销.但对于任何会变得更大并且需要维持多年的东西,我认为这是值得的.

猜你在找的Java相关文章