我是
Java的新手,我正在尝试使用servlet创建一个Web项目.
我想查询我的数据库,但我想我不了解JPA和DAO的一切.
我想查询我的数据库,但我想我不了解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的一些参数.对于一个非常简单的小应用程序,它可能是太多的开销.但对于任何会变得更大并且需要维持多年的东西,我认为这是值得的.