Java Web应用程序:数据层的DAO和JPA
我正在尝试建立一个安全的登录,以防止使用SQLInjection,但对于我的应用程序的其他部分,我考虑使用JPA,但我不知道使用混合是一种好的做法,还是我应该坚持在所有数据层使用DAO并保持一致 我还想知道在运行时同时使用JPA和DAO是否会导致兼容性问题Java Web应用程序:数据层的DAO和JPA,java,jpa,dao,Java,Jpa,Dao,我正在尝试建立一个安全的登录,以防止使用SQLInjection,但对于我的应用程序的其他部分,我考虑使用JPA,但我不知道使用混合是一种好的做法,还是我应该坚持在所有数据层使用DAO并保持一致 我还想知道在运行时同时使用JPA和DAO是否会导致兼容性问题 谢谢最好的方法是您可以使用DAO进行安全登录哈希。您的应用程序的其余部分可以使用JPA。在我的项目中,我使用Hibernate而不是JPA。这是关于在使用JPA时使用DAO层是否有意义的讨论的答案 我认为对任何数据访问逻辑(例如登录)都有相
谢谢最好的方法是您可以使用DAO进行安全登录哈希。您的应用程序的其余部分可以使用JPA。在我的项目中,我使用Hibernate而不是JPA。这是关于在使用JPA时使用DAO层是否有意义的讨论的答案
我认为对任何数据访问逻辑(例如登录)都有相同的应用程序,您的DAO应该基于接口,这意味着实现是一种选择,您可以通过插入新的实现来随意修改。客户机应该只知道DAO接口
如果这是正确的,那么我不理解你的问题。您的DAO是接口;JPA将是您在众多实现中选择的一个实现。不是非此即彼;它是接口/实现。好的,这不会导致任何兼容性问题吗?所以我应该只使用DAO进行身份验证,而使用JPA进行其余操作,因为使用自定义查询要容易得多。如上文所述,如果您的数据访问逻辑只涉及调用EntityManager的crud方法,我认为不包括DAO是好的,在这种情况下,DAO只是EntityManager的包装,没有任何附加值。好的,我现在明白了,你是对的,我应该只使用JPA。谢谢你的澄清。好吧,你说得很清楚,“更清楚”,因为我打算使用接口来公开服务,但我认为DAO是实现而不是模式。