我是Java的新手,但是有很多数据库方面的经验。过去一周,我一直在阅读有关使用JAVA中的Web服务访问数据库的各种方法,并且为此阅读了一些Netbeans教程。
我需要创建一个简单的Web服务,以查询和检索数据库中的数据最少。我需要根据唯一键查找单个值并将其返回,然后将单个记录插入子表中。我试图决定是通过几个简单的查询还是使用JPA实体来做到这一点。
用其他语言,我只需要编写代码即可建立数据库连接并自己处理数据,但是我看到Java能够使用Entities表示不同的表并使用JPA进行所有的“繁重工作”。但是,对于Web服务的一些简单查询,这似乎是很多开销。我很好奇,是否有人可以告诉我使用JPA和实体而不是仅使用带有简单SQL语句的EntityManager提取数据的开销?您发现使用一种相对于另一种有什么好处吗?当我看到开发平台过去构建额外的对象时,通常会增加复杂性和性能方面的影响。
先感谢您。
我认为使用JPA与将EntityManager与SQL查询一起使用并不会带来太大的开销。
实际上,尝试仅使用EntityManager来执行SQL查询会增加更多的开销。在JPA的域中,这些查询被称为“本地查询”。
使用JPA与查询方法的一个即时好处是ORM,它使您避免创建任何类型的查询并在大的insert语句中传递命名参数,并自动从resultSet创建对象,您将不再担心循环ResultSet和提取列以创建您的bean。
实际上,如果要执行查询,则需要创建相同的Java Bean来管理返回的对象,因此添加一些注释就没什么大不了了。
对于您要创建的项目类型,只需花费更多的时间来配置您的应用程序会更容易,但是当您调用em.persist(entity)
而不是使用时INSERT INTO table values (?,?,?,?,?)
,您会喜欢它以及其他持久性操作。
在JPA中将其视为使对象关系映射更简单,基于POJO的非侵入性持久层的解决方案。
最后,JPA的模型简单,优雅,功能强大且灵活,当您要配置数据库模型时可能会花很多功夫,但事实并非如此。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句